c# 获取mac地址的2种方法
和大家分享下,互相学习一下吧。第一个获取方法好像获取不到mac地址,我用了第二种方法可以获取到。希望知道的可以说下为什么。
1,首先要添加引用:using System.Management;
2,代码如下:
/// <summary> /// 获取网卡硬件地址 /// </summary> /// <returns>mac地址</returns> public string GetMacAddress() { try { //获取网卡硬件地址 string mac = ""; ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if ((bool)mo["IPEnabled"]) { mac = mo["MacAddress"].ToString(); break; } } moc = null; mc = null; return mac; } catch { return ""; } } /// <summary> /// 获取网卡地址 /// </summary> /// <returns>网卡地址</returns> private string GetMacAddressNew() { const int MIN_MAC_ADDR_LENGTH = 12; string macAddress = string.Empty; long maxSpeed = -1; foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces()) { string tempMac = nic.GetPhysicalAddress().ToString(); if (nic.Speed > maxSpeed && !string.IsNullOrEmpty(tempMac) && tempMac.Length >= MIN_MAC_ADDR_LENGTH) { maxSpeed = nic.Speed; macAddress = tempMac; } } return macAddress; }