C#實現(xiàn)獲取MAC地址的方法
更新時間:2014年08月07日 10:30:36 投稿:shichen2014
這篇文章主要介紹了C#實現(xiàn)獲取MAC地址的方法,很實用的功能,需要的朋友可以參考下
本文實例講述了C#實現(xiàn)獲取MAC地址的方法,是一個非常常見而且實用的功能,具體方法如下:
主要功能代碼如下:
/// <summary> /// 根據(jù)網(wǎng)卡類型來獲取mac地址 /// </summary> /// <param name="networkType">網(wǎng)卡類型</param> /// <param name="macAddressFormatHanlder">格式化獲取到的mac地址</param> /// <returns>獲取到的mac地址</returns> public static string GetMacAddress(NetworkInterfaceType networkType, Func<string, string> macAddressFormatHanlder) { string _mac = string.Empty; NetworkInterface[] _networkInterfaces = NetworkInterface.GetAllNetworkInterfaces(); foreach (NetworkInterface adapter in _networkInterfaces) { if (adapter.NetworkInterfaceType == networkType) { _mac = adapter.GetPhysicalAddress().ToString(); if (!String.IsNullOrEmpty(_mac)) break; } } if (macAddressFormatHanlder != null) _mac = macAddressFormatHanlder(_mac); return _mac; } /// <summary> /// 根據(jù)網(wǎng)卡類型以及網(wǎng)卡狀態(tài)獲取mac地址 /// </summary> /// <param name="networkType">網(wǎng)卡類型</param> /// <param name="status">網(wǎng)卡狀態(tài)</param> ///Up 網(wǎng)絡(luò)接口已運行,可以傳輸數(shù)據(jù)包。 ///Down 網(wǎng)絡(luò)接口無法傳輸數(shù)據(jù)包。 ///Testing 網(wǎng)絡(luò)接口正在運行測試。 ///Unknown 網(wǎng)絡(luò)接口的狀態(tài)未知。 ///Dormant 網(wǎng)絡(luò)接口不處于傳輸數(shù)據(jù)包的狀態(tài);它正等待外部事件。 ///NotPresent 由于缺少組件(通常為硬件組件),網(wǎng)絡(luò)接口無法傳輸數(shù)據(jù)包。 ///LowerLayerDown 網(wǎng)絡(luò)接口無法傳輸數(shù)據(jù)包,因為它運行在一個或多個其他接口之上,而這些“低層”接口中至少有一個已關(guān)閉。 /// <param name="macAddressFormatHanlder">格式化獲取到的mac地址</param> /// <returns>獲取到的mac地址</returns> public static string GetMacAddress(NetworkInterfaceType networkType, OperationalStatus status, Func<string, string> macAddressFormatHanlder) { string _mac = string.Empty; NetworkInterface[] _networkInterfaces = NetworkInterface.GetAllNetworkInterfaces(); foreach (NetworkInterface adapter in _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> public static string GetMacAddress(Func<string, string> macAddressFormatHanlder) { string _mac = string.Empty; NetworkInterface[] _networkInterfaces = NetworkInterface.GetAllNetworkInterfaces(); foreach (NetworkInterface adapter in _networkInterfaces) { _mac = adapter.GetPhysicalAddress().ToString(); if (!string.IsNullOrEmpty(_mac)) break; } if (macAddressFormatHanlder != null) _mac = macAddressFormatHanlder(_mac); return _mac; }
有些項目中出于安全考慮需要獲取MAC地址,然后再判斷MAC地址是否合法才可以登陸。本文總結(jié)的方法希望對大家有所幫助!
相關(guān)文章
c#使用ManagedWifi查看當(dāng)前Wifi信號并選擇wifi的示例
這篇文章主要介紹了c#使用ManagedWifi查看當(dāng)前Wifi信號并選擇wifi的示例,需要的朋友可以參考下2014-04-04C# 復(fù)制指定節(jié)點的所有子孫節(jié)點到新建的節(jié)點下
這篇文章主要介紹了C# 復(fù)制指定節(jié)點的所有子孫節(jié)點到新建的節(jié)點下的相關(guān)資料,非常不錯具有一定的參考借鑒價值,需要的朋友可以參考下2016-10-10C#如何利用結(jié)構(gòu)體對固定格式數(shù)據(jù)進(jìn)行解析
這篇文章主要為大家詳細(xì)介紹了C#利用結(jié)構(gòu)體對固定格式數(shù)據(jù)進(jìn)行解析,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01