禁用网络适配器时获取MAC地址?

有什么办法可以在.net中禁用网络适配器时检索MAC地址吗?

提前致谢,

无法获取已禁用的适配器的MAC地址:这是因为获取MAC地址需要查询驱动程序,并且未加载已禁用适配器的驱动程序( 源 )。

但是,您可以获取当前未连接的适配器的MAC地址。

WMI路由在这里并不好,因为它显示未连接的适配器的MAC地址为空。 好消息是NetworkInterface.GetAllNetworkInterfaces()路由工作得很好:

 // using System.Net.NetworkInformation; var nics = NetworkInterface.GetAllNetworkInterfaces(); // pick your NIC! var selectedNic = nics.First(); var macAddress = selectedNic.GetPhysicalAddress().ToString(); 

请参阅此链接。

http://msdn.microsoft.com/en-us/library/system.net.networkinformation.physicaladdress.aspx

此处的示例显示所有接口的物理地址,而不管其操作阶段。 HTH。

您可以使用WMI:

 public static string GetMACAddress() { ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); string MACAddress=String.Empty; foreach(ManagementObject mo in moc) { if(MACAddress==String.Empty) // only return MAC Address from first card { MACAddress= mo["MacAddress"].ToString() ; } mo.Dispose(); } return MACAddress; }