using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Management;
using System.Net.NetworkInformation;
namespace GetMac
{
#region
//方法一(有错误):
// class Program
//{/// <summary>
// /// 获取网卡硬件地址
// /// </summary>
// /// <returns>mac地址</returns>
// public string GetMacAddress()
// {
// try
// {
// //获取网卡硬件地址
// string mac = "";
// moc = null;
// mc = null;
// ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
// System.Management ObjectCollection moc = mc.GetInstances();
// foreach (ManagementObject mo in moc)
// {
// if ((bool)mo["IPEnabled"])
// {
// mac = mo["MacAddress"].ToString();
// break;
// }
// }
// return mac;
// }
// catch
// {
// return "";
// }
// }
#endregion
class progrem
{
/// <summary>
/// 获取网卡地址
/// </summary>
/// <returns>网卡地址</returns>
private static 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;
}
}
Console.WriteLine(macAddress.ToString());
return macAddress;
}
public ManagementObjectCollection moc { get; set; }
static void Main(string[] args)
{
GetMacAddressNew();
Console.ReadKey();
}
}
}