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

时间:2010-06-30 05:35:11

标签: c# vb.net

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

提前致谢,

4 个答案:

答案 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地址。

More info at get-NetAdapter

相关问题