C#使用WMI获取本机网卡MAC地址示例

ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * FROM Win32_NetworkAdapterConfiguration");
ManagementObjectCollection collection = searcher.Get();
foreach (ManagementObject item in collection)
{
    if (item["IPEnabled"].ToString() == "True")
    {
        Console.WriteLine(item["MacAddress"]);
    }
}

说明:这种方法获取不到未连接和已禁用的网卡MAC地址。

NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in nics)
{
    string mac = adapter.GetPhysicalAddress().ToString();
    if (mac != null && mac.Length == 12)
    {
        Console.WriteLine(mac);
    }
}

说明:这种方法获取不到已禁用的网卡MAC地址。

参考资料

[1].C#获取IP及MAC地址:http://www.cnblogs.com/deckard/archive/2009/04/07/1430807.html
[2].C#获取MAC地址方法(补充版):http://blog.csdn.net/yysyangyangyangshan/article/details/7091783
[3].Win32_NetworkAdapterConfiguration:http://msdn.microsoft.com/en-us/library/aa394217.aspx
[4].WMI使用的WIN32_类库名:http://blog.csdn.net/fer_ba/article/details/4280983
[5].WMI使用:http://blog.163.com/gaoguangtao_love/blog/static/3848371520105189051916/
[6].WMI问题答案集锦(C#) :http://blog.sina.com.cn/s/blog_53d599430100owxm.html

评论: 0 | 引用: 0 | 查看次数: 5595
发表评论
登录后再发表评论!