2

システムで使用できるイーサネットを区別したいと考えています。それが LAN であろうと、Wifi であろうと、VMWare によって作成されたものであろうと。I am only intrested for LAN.

しかし、次のコードで列挙しているとき:

     NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
     foreach (NetworkInterface networkInterface in adapters)
     {

         Console.WriteLine("   {0}  ::: Interface Type {1} ::::ID {2}  \n", networkInterface.Name, networkInterface.NetworkInterfaceType, networkInterface.Id);
     }

NetworkInterface.Descriptionでは、どうすればとNetworkInterface.NetworkInterfaceTypeは役に立たないかを区別できます。

他の方法はありますか?

ここに画像の説明を入力

4

2 に答える 2

2

WMI を使用して、システム上のネットワーク アダプターに関するより詳細な情報を取得することを検討してください。特定のアダプタが有線ネットワーク アダプタであるかワイヤレスであるか、実際に「物理」ネットワーク アダプタであるかどうかがわかります。

http://geekswithblogs.net/PsychoCoder/archive/2008/01/25/using_wmi_in_csharp.aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/aa394216(v=vs.85).aspx

于 2012-08-01T09:55:49.020 に答える
1

アダプターが Wifi アダプターかどうかを調べるには、root\WMI 名前空間の MSNdis_PhysicalMediumType クラスを使用できます。

残念ながら、VMware アダプタは Windows からは「本物の」物理アダプタであるかのように見え、MAC アドレスや IP アドレスなどを持っているため、それらを区別するのは困難です。

Windows で ncpa.cpl を実行すると、それらがすべて物理アダプターと同じように表示されることに気付くでしょう。

于 2013-12-10T14:27:35.977 に答える