質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

2回答

5822閲覧

コントロールパネルのネットワーク接続に表示されるMACアドレスを取得したいです

kikiinu

総合スコア21

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2016/03/29 06:07

編集2016/03/29 07:48

Visual Studio 2015 VC++で開発しています
.NET環境が使用できないのでWin32 APIで考えています

MACアドレスをGetAdaptersAddressesで取得していますが
コントロールパネルのネットワーク接続に表示される物以外も
取得されます

現在取得しているのは
・インターネット接続に使用している物 ・・・1番
・Softwate Loopback Interface
・Microsoft ISTAP Adapter
・Teredo Tunneling Pseudo-Interface

上記の1番だけがコントロールパネルのネットワーク接続に
表示されているのですが、コントロールパネルのネットワーク接続に
表示される全MACアドレスを取得したいです。
(今は1つしかないですが)

_IP_ADAPTER_ADDRESSES構造体のメンバの意味わからず
どれをチェックすればよろしいかわかる方がいれば
ご教授お願いします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

コマンドプロンプト:ipconfig /all
で、取得できるようなデータを、取得したいのでしょうか?
それとも?

例えば、
FAQ: 2.11 How do I get the MAC address?
https://social.msdn.microsoft.com/Forums/vstudio/en-US/630d7583-a003-471b-8a41-6b8e4cc06c75/faq-211-how-do-i-get-the-mac-address?forum=vcgeneral
MACアドレスの取得方法
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=16782&forum=7
と、各リンクは読んでおいた方が良いかも。
で、
PhysicalAddress クラス
https://msdn.microsoft.com/ja-jp/library/system.net.networkinformation.physicaladdress(v=vs.110).aspx?cs-save-lang=1&cs-lang=cpp#code-snippet-2
を使うと云う事で、目的を満たせるかどうか?

投稿2016/03/29 06:44

編集2016/03/29 06:47
daive

総合スコア2028

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kikiinu

2016/03/29 07:00

回答ありがとうございます 書き忘れていました.NETが使用できないのでWin32APIでの取得方法が知りたいです FAQ: 2.11 How do I get the MAC address?の記事の内容は他のところで 確認済みで結果、GetAdaptersAddressesを使う方法を選びました SendARPは初めて知りました。IPアドレスが必要なのでこれだと ネットに接続していないMACアドレスが取得できないかと思いますので 使えなさそうです。認識が間違っていたらすいません
daive

2016/03/29 10:17

古くからの手法が良いようですので、 検索ワードだけ示しておきます。 WMI MAC address Windows API MAC address C++の記事で、Ver4.2 系以前は避けた方が良いかもしれません。 古すぎだと思います。
guest

0

MAC(Media Access Control)アドレスは、データリンク層(OSI参照モデルの第2層)の通信プロトコルで用いられる48ビットのアドレスで、ネットワークボードごとに異なるアドレスを持ちます。

普通のパソコンにはネットワークボード(マザーボード上のチップである場合も多い)が1つしかありません(だから、LANケーブルを接続するコネクタも1つかないから、Macアドレスも1つしかありません。

この1つしかないLANケーブルのコネクタを通して行われるネットワーク接続が、コントロールパネルのネットワーク接続に表示されているもので、それ以外のネットワーク接続は存在しません。

その1つしかないネットワーク接続のMacアドレスが表示されているのですから、それが全てです。それ以外には、表示されるべきMacアドレスはありません。

・Softwate Loopback Interface
・Microsoft ISTAP Adapter
・Teredo Tunneling Pseudo-Interface
これらは論理的な(ソフトウェア上にのみ存在する、あるいは仮想的な)ネットワークであって、物理的なネットワークではないですからMacアドレスを持ちません。

投稿2016/03/29 07:34

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kikiinu

2016/03/29 07:46 編集

回答ありがとうございます 仮想的なネットワークで物理アドレスがないのですね。 コントロールパネルのネットワーク接続には物理的なネットワーク が表示されていると思いますが、その表示されているMACアドレスの 取得方法が知りたいです Windowsでは区別して表示しているので何か方法があると思っています 仮想的なネットワークと物理的なネットワークが _IP_ADAPTER_ADDRESSES構造体のメンバから判断できるのが 1番ベストなのですが…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問