在.net中禁用网络适配器时,有什么办法可以检索MAC地址吗?
提前致谢,
答案 0 :(得分:10)
无法获取已禁用的适配器的MAC地址:这是因为获取MAC地址需要查询驱动程序,并且未加载已禁用适配器的驱动程序(source)。
但是,您可以获取当前未连接的适配器的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();
答案 1 :(得分:1)
您可以使用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;
}
答案 2 :(得分:1)
请参阅此链接。
http://msdn.microsoft.com/en-us/library/system.net.networkinformation.physicaladdress.aspx
此处的示例显示所有界面的物理地址,而不管其操作阶段。 HTH。
答案 3 :(得分:-1)
使用MS PowerShell命令get-NetAdapter可以获取禁用的网络适配器的MAC地址。