有什么办法可以在.net中禁用网络适配器时检索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;
}