2017-04-22 102 views
0

我有很多虛擬網絡適配器,我需要得到真正的MAC地址。 此代碼給我的MAC地址列表,但我如何可以識別真正的或虛擬的網絡適配器?如何獲得真正的mac地址?

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

我很好奇你想要的mac地址,以及爲什麼你想從虛擬網卡辨別物理網卡。 –

+0

我需要獲取物理網絡適配器的物理地址。我不需要virtual.i在客戶端有一個軟件,我想發送這個服務器的MAC地址,並用它來識別機器。我知道如何獲得其他硬件ID,但我需要真正的MAC地址。請幫助我 –

回答

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,但我需要在任何機器上的代碼工作。我認爲問題是如何識別物理或虛擬網絡適配器? –