インターフェイスがWindowsのPCの物理802.3イーサネットポートであるかどうかを正確に判断する方法を探しています。
ipconfig /all を使用すると、すべてのインターフェイスを一覧表示できます。PC でこれを行うと、VPN、Bluetooth、Wifi、および物理イーサネット インターフェイスを含むいくつかのエントリがここに一覧表示されます。
「isPhysical(interface)」のようなものを探しています。(複数の物理 LAN ポートがあってもかまいません。物理ポートかどうかを知りたいだけです)。
アップデート:
ジェイとクリス、ありがとう!
(コメントスペースが足りなかったのでこちらに書きます)
現在、WMI Win32_NetworkAdapter の使用を検討しています。ただし、AdapterType="Ethernet 802.3" の 4 つのインターフェイスが表示されます。
私のPCには物理ポートが1つしかなく、他のポートには「Virtual Machine Network Services Driver」という名前が付いています。(これらは何らかの悪意のある理由で私の会社によってインストールされていると思います)
インターフェイスで必要な属性を見つけましたが、winXP では使用できません!!!
PhysicalAdapter データ型: boolean アクセス型: 読み取り専用
アダプターが物理アダプターか論理アダプターかを示します。True の場合、アダプタは物理的です。Windows Server 2003、Windows XP、Windows 2000、および Windows NT 4.0: このプロパティは使用できません。
名前の「仮想」という単語のテキスト フィルターを実行する以外に、物理ポートかどうかを判断する方法はありますか?
更新 12/08
VM をインストールすると、仮想インターフェイスが追加されるようです。
仮想アダプターの詳細は次のとおりです: http://blogs.msdn.com/virtual_pc_guy/archive/2005/04/01/404816.aspx
ユーザーが管理者権限を持っていない場合、WMI インターフェイスが必要なデータを返さないという問題が見つかりました。それでは、GetAdapterInfo メソッドを見てみましょう。ただし、実際のアダプターの説明に「仮想マシン サービス ドライバー」が追加されているようで、「仮想」テキスト チェックが無効になっています。
GetAdapterInfo によって返される構造は次のとおりです。
http://msdn.microsoft.com/en-us/library/aa366062(VS.85).aspx