2017-04-22 119 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,但我需要在任何机器上的代码工作。我认为问题是如何识别物理或虚拟网络适配器? –