2017-04-22 13 views
0

私は多くの仮想ネットワークアダプタを持っており、私は本当のMACアドレスを取得する必要があります。 このコードは私にMACアドレスのリストを与えますが、実際のまたは仮想のネットワークアダプタをどのように識別できますか?どのように実際のMACアドレスを取得する?

var macAddr = 
      (
       from nic in NetworkInterface.GetAllNetworkInterfaces() 
       where nic.OperationalStatus == OperationalStatus.Up 
       select nic.GetPhysicalAddress().ToString() 
      ).ToList(); 
+0

私はあなたがMACアドレスを求めているのは興味がありますし、なぜ仮想NICから物理NICを識別したいのですか? –

+0

私は物理ネットワークアダプタの物理アドレスを取得する必要があります。私はvirtual.i必要はありませんクライアント側のソフトウェアがあり、私はこのMACアドレスをサーバーに送信し、マシンを識別するために使用します。私は他のハードウェアIDを取得する方法を知っていますが、私は本当のMACアドレスが必要です。 pls助けて –

答えて

0

あなたはこれが機能するためSystem.Net名前空間をインポートする必要があります。これはIPv4IPv6をサポートします。

public string GetMACAddress() 
{ 
    NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); 
    String sMacAddress = string.Empty; 
    foreach (NetworkInterface adapter in nics) 
    { 
     if (sMacAddress == String.Empty)// only return MAC Address from first card 
     { 
      IPInterfaceProperties properties = adapter.GetIPProperties(); 
      sMacAddress = adapter.GetPhysicalAddress().ToString(); 
     } 
    } return sMacAddress; 
} 
+0

tnq。しかし、私は最初のmac_addressを取得する必要はありません(これは私のための仮想アダプタです)。私は実際のMACアドレスを取得する必要があります。私のコンピュータの実際のネットワークアダプタのインデックスは2.ですが、私は任意のマシン上でコードの作業が必要です。私は質問がどのように物理または仮想ネットワークアダプタを識別すると思いますか? –

関連する問題