标签:returns style open get apt ntc 地址 dia physical
C#获取MAC地址
/// <summary> /// 获取MAC地址(返回第一个物理以太网卡的mac地址) /// </summary> /// <returns>成功返回mac地址,失败返回null</returns> public string getMacAddress() { string macAddress = null; try { NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); foreach (NetworkInterface adapter in nics) { if (adapter.NetworkInterfaceType.ToString().Equals("Ethernet")) //是以太网卡 { string fRegistryKey = "SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\" + adapter.Id + "\\Connection"; RegistryKey rk = Registry.LocalMachine.OpenSubKey(fRegistryKey, false); if (rk != null) { // 区分 PnpInstanceID // 如果前面有 PCI 就是本机的真实网卡 // MediaSubType 为 01 则是常见网卡,02为无线网卡。 string fPnpInstanceID = rk.GetValue("PnpInstanceID", "").ToString(); int fMediaSubType = Convert.ToInt32(rk.GetValue("MediaSubType", 0)); if (fPnpInstanceID.Length > 3 && fPnpInstanceID.Substring(0, 3) == "PCI") //是物理网卡 { macAddress = adapter.GetPhysicalAddress().ToString(); break; } else if (fMediaSubType == 1) //虚拟网卡 continue; else if (fMediaSubType == 2) //无线网卡(上面判断Ethernet时已经排除了) continue; } } } } catch { macAddress = null; } return macAddress; }
标签:returns style open get apt ntc 地址 dia physical
原文地址:http://www.cnblogs.com/zixing131/p/6209272.html