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

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

ただいまの
回答率

90.49%

  • C++

    3581questions

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

  • API

    1555questions

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

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

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,415

kikiinu

score 5

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構造体のメンバの意味わからず
どれをチェックすればよろしいかわかる方がいれば
ご教授お願いします

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+1

コマンドプロンプト: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 16:00

    回答ありがとうございます

    書き忘れていました.NETが使用できないのでWin32APIでの取得方法が知りたいです
    FAQ: 2.11 How do I get the MAC address?の記事の内容は他のところで
    確認済みで結果、GetAdaptersAddressesを使う方法を選びました

    SendARPは初めて知りました。IPアドレスが必要なのでこれだと
    ネットに接続していないMACアドレスが取得できないかと思いますので
    使えなさそうです。認識が間違っていたらすいません

    キャンセル

  • 2016/03/29 19:17

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

    キャンセル

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 16:42 編集

    回答ありがとうございます
    仮想的なネットワークで物理アドレスがないのですね。

    コントロールパネルのネットワーク接続には物理的なネットワーク
    が表示されていると思いますが、その表示されているMACアドレスの
    取得方法が知りたいです
    Windowsでは区別して表示しているので何か方法があると思っています

    仮想的なネットワークと物理的なネットワークが
    _IP_ADAPTER_ADDRESSES構造体のメンバから判断できるのが
    1番ベストなのですが…。

    キャンセル

関連した質問

  • 解決済

    物理NIC変更後の仮想NICのMACアドレス

    物理NIC A | VM1:Windows Server 2012R2 | vSwitch0 | | | | VM1 VM2

  • 解決済

    WAN側にmacアドレスがあることについて

    家庭のルータにおいて、”WAN側にmacアドレスがある” というのはおかしくないですか?? WAN側にはISPのルータが接続されていると思いますが、ルーティングにmacアドレスは

  • 解決済

    arpについて

    arpは第何層のプロトコルなのでしょうか? googleで見てみると、「データリンク層」が多いようですが、 wikiでみると 「RFC 826で定義され、その後 RFC 522

  • 解決済

    Mac OS Sierra で社内サーバーへ接続できない

    2014年モデルのMacBook Proで社内NASサーバーに接続ができません。 Macに標準搭載されている、タスクバーの【移動】から【サーバーへ接続】を選択して社内のNAS

  • 受付中

    ファイルメーカーPro 15 ツールの文字が小さい

    ファイルメーカーProのツールバー、インスペクタ内の文字が小さくて読みにくいのですが、大きくする方法がわかりません。環境設定からも設定できなく困っております。よろしくお願いします。

  • 解決済

    Raspberry PiのIPアドレス固定?

     基本的な情報 OS RASPBIAN STRETCH LITE August 2017 (最近出た新しいバージョンです) Raspberry Pi 3 MOdel B

  • 解決済

    Mac mini(2012モデル)をWOLしたいです。

    前提・実現したいこと こんにちは。いつもたいへんお世話になります。 本日はVisual Studio 2017 CommunityでMac mini(2014モデル)をWOLしたい

  • 解決済

    docker のIPアドレスについて

    docker tool box をインストールして docker を使えるようにしました。 dockerについて調べてみると 「192.168.99.100」というIPアドレス

同じタグがついた質問を見る

  • C++

    3581questions

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

  • API

    1555questions

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