C#实现获取MAC地址的方法
本文实例讲述了C#实现获取MAC地址的方法,是一个非常常见而且实用的功能,具体方法如下:
主要功能代码如下:
///<summary>
///根据网卡类型来获取mac地址
///</summary>
///<paramname="networkType">网卡类型</param>
///<paramname="macAddressFormatHanlder">格式化获取到的mac地址</param>
///<returns>获取到的mac地址</returns>
publicstaticstringGetMacAddress(NetworkInterfaceTypenetworkType,Func<string,string>macAddressFormatHanlder)
{
string_mac=string.Empty;
NetworkInterface[]_networkInterfaces=NetworkInterface.GetAllNetworkInterfaces();
foreach(NetworkInterfaceadapterin_networkInterfaces)
{
if(adapter.NetworkInterfaceType==networkType)
{
_mac=adapter.GetPhysicalAddress().ToString();
if(!String.IsNullOrEmpty(_mac))
break;
}
}
if(macAddressFormatHanlder!=null)
_mac=macAddressFormatHanlder(_mac);
return_mac;
}
///<summary>
///根据网卡类型以及网卡状态获取mac地址
///</summary>
///<paramname="networkType">网卡类型</param>
///<paramname="status">网卡状态</param>
///Up网络接口已运行,可以传输数据包。
///Down网络接口无法传输数据包。
///Testing网络接口正在运行测试。
///Unknown网络接口的状态未知。
///Dormant网络接口不处于传输数据包的状态;它正等待外部事件。
///NotPresent由于缺少组件(通常为硬件组件),网络接口无法传输数据包。
///LowerLayerDown网络接口无法传输数据包,因为它运行在一个或多个其他接口之上,而这些“低层”接口中至少有一个已关闭。
///<paramname="macAddressFormatHanlder">格式化获取到的mac地址</param>
///<returns>获取到的mac地址</returns>
publicstaticstringGetMacAddress(NetworkInterfaceTypenetworkType,OperationalStatusstatus,Func<string,string>macAddressFormatHanlder)
{
string_mac=string.Empty;
NetworkInterface[]_networkInterfaces=NetworkInterface.GetAllNetworkInterfaces();
foreach(NetworkInterfaceadapterin_networkInterfaces)
{
if(adapter.NetworkInterfaceType==networkType)
{
if(adapter.OperationalStatus!=status)continue;
_mac=adapter.GetPhysicalAddress().ToString();
if(!String.IsNullOrEmpty(_mac))break;
}
}
if(macAddressFormatHanlder!=null)
_mac=macAddressFormatHanlder(_mac);
return_mac;
}
///<summary>
///获取读到的第一个mac地址
///</summary>
///<returns>获取到的mac地址</returns>
publicstaticstringGetMacAddress(Func<string,string>macAddressFormatHanlder)
{
string_mac=string.Empty;
NetworkInterface[]_networkInterfaces=NetworkInterface.GetAllNetworkInterfaces();
foreach(NetworkInterfaceadapterin_networkInterfaces)
{
_mac=adapter.GetPhysicalAddress().ToString();
if(!string.IsNullOrEmpty(_mac))
break;
}
if(macAddressFormatHanlder!=null)
_mac=macAddressFormatHanlder(_mac);
return_mac;
}
有些项目中出于安全考虑需要获取MAC地址,然后再判断MAC地址是否合法才可以登陆。本文总结的方法希望对大家有所帮助!