禁用网络适配器时获取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; }