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地址是否合法才可以登陆。本文总结的方法希望对大家有所帮助!