C#实现的小功能:[5]C#获取MAC地址(网卡ID)
1、这里要用到三个类:ManagementClass 、 ManagementObjectCollection 和 ManagementObject
需要添加.Net引用:System.Management
并添加命名空间:using System.Management;
![C#实现的小功能:[5]C#获取MAC地址(网卡ID)](https://exp-picture.cdn.bcebos.com/e177fc9147e833e02789a2b030ea3e8631485952.jpg)
![C#实现的小功能:[5]C#获取MAC地址(网卡ID)](https://exp-picture.cdn.bcebos.com/46a92de039723d039b11a135bb486143d6d45752.jpg)
2、首先建立一个CIM管理类:
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
Win32_NetworkAdapterConfiguration 是WMI中的一个Win32类
3、然后得到WMI实例的集合:
ManagementObjectCollection moc = mc.GetInstances();
4、最后遍历集合即可得到MAC地址(一个):
string mac = "";
foreach (ManagementObject mo in moc)
if ((bool)mo["IPEnabled"] == true)
{
mac += mo["MacAddress"].ToString() + " ";
break;
}
这里只是得到了一个可用的MAC地址,读者可以根据需要修改,删除if判断、break等语句。
5、读者也可以将其封装成一个方法:
/// <summary>
/// 获取网卡ID代码
/// </summary>
/// <returns></returns>
public static string GetNetworkAdpaterID()
{
try
{
string mac = "";
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
if ((bool)mo["IPEnabled"] == true)
{
mac += mo["MacAddress"].ToString() + " ";
break;
}
moc = null;
mc = null;
return mac.Trim();
}
catch (Exception e)
{
return "uMnIk";
}
}
![C#实现的小功能:[5]C#获取MAC地址(网卡ID)](https://exp-picture.cdn.bcebos.com/38332303bbea3e8612b3fef05cd4483105eb5552.jpg)
6、OK,搞定,这样就可以获得MAC地址了,呵呵!
![C#实现的小功能:[5]C#获取MAC地址(网卡ID)](https://exp-picture.cdn.bcebos.com/3fc72e486143d7d46dca9b587da75f0f832b5052.jpg)