C#實(shí)現(xiàn)獲取MAC地址的方法
本文實(shí)例講述了C#實(shí)現(xiàn)獲取MAC地址的方法,是一個(gè)非常常見(jiàn)而且實(shí)用的功能,具體方法如下:
主要功能代碼如下:
/// <summary> /// 根據(jù)網(wǎng)卡類(lèi)型來(lái)獲取mac地址 /// </summary> /// <param name="networkType">網(wǎng)卡類(lèi)型</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)卡類(lèi)型以及網(wǎng)卡狀態(tài)獲取mac地址 /// </summary> /// <param name="networkType">網(wǎng)卡類(lèi)型</param> /// <param name="status">網(wǎng)卡狀態(tài)</param> ///Up 網(wǎng)絡(luò)接口已運(yùn)行,可以傳輸數(shù)據(jù)包。 ///Down 網(wǎng)絡(luò)接口無(wú)法傳輸數(shù)據(jù)包。 ///Testing 網(wǎng)絡(luò)接口正在運(yùn)行測(cè)試。 ///Unknown 網(wǎng)絡(luò)接口的狀態(tài)未知。 ///Dormant 網(wǎng)絡(luò)接口不處于傳輸數(shù)據(jù)包的狀態(tài);它正等待外部事件。 ///NotPresent 由于缺少組件(通常為硬件組件),網(wǎng)絡(luò)接口無(wú)法傳輸數(shù)據(jù)包。 ///LowerLayerDown 網(wǎng)絡(luò)接口無(wú)法傳輸數(shù)據(jù)包,因?yàn)樗\(yùn)行在一個(gè)或多個(gè)其他接口之上,而這些“低層”接口中至少有一個(gè)已關(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> /// 獲取讀到的第一個(gè)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; }
有些項(xiàng)目中出于安全考慮需要獲取MAC地址,然后再判斷MAC地址是否合法才可以登陸。本文總結(jié)的方法希望對(duì)大家有所幫助!
- C#獲取CPU編號(hào)的方法
- C#獲取硬盤(pán)編號(hào)的方法
- C#利用win32 Api 修改本地系統(tǒng)時(shí)間、獲取硬盤(pán)序列號(hào)
- 用C#獲取硬盤(pán)序列號(hào),CPU序列號(hào),網(wǎng)卡MAC地址的源碼
- C#獲得MAC地址(網(wǎng)卡序列號(hào))的實(shí)現(xiàn)代碼
- C# 多網(wǎng)卡 Server Listen
- C#修改MAC地址類(lèi)的實(shí)例
- C#獲取計(jì)算機(jī)名,IP,MAC信息實(shí)現(xiàn)代碼
- C#獲取機(jī)器碼的方法詳解(機(jī)器名,CPU編號(hào),硬盤(pán)編號(hào),網(wǎng)卡mac等)
相關(guān)文章
c#使用ManagedWifi查看當(dāng)前Wifi信號(hào)并選擇wifi的示例
這篇文章主要介紹了c#使用ManagedWifi查看當(dāng)前Wifi信號(hào)并選擇wifi的示例,需要的朋友可以參考下2014-04-04C#播放鈴聲最簡(jiǎn)單實(shí)現(xiàn)方法
這篇文章主要介紹了C#播放鈴聲最簡(jiǎn)單實(shí)現(xiàn)方法,通過(guò)調(diào)用系統(tǒng)方法實(shí)現(xiàn)播放wav格式音頻文件的功能,是非常實(shí)用的技巧,需要的朋友可以參考下2014-12-12C# 復(fù)制指定節(jié)點(diǎn)的所有子孫節(jié)點(diǎn)到新建的節(jié)點(diǎn)下
這篇文章主要介紹了C# 復(fù)制指定節(jié)點(diǎn)的所有子孫節(jié)點(diǎn)到新建的節(jié)點(diǎn)下的相關(guān)資料,非常不錯(cuò)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10C#如何獲取文件全路徑、目錄、擴(kuò)展名、文件名稱(chēng)
這篇文章主要介紹了C#如何獲取文件全路徑、目錄、擴(kuò)展名、文件名稱(chēng)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07C#如何利用結(jié)構(gòu)體對(duì)固定格式數(shù)據(jù)進(jìn)行解析
這篇文章主要為大家詳細(xì)介紹了C#利用結(jié)構(gòu)體對(duì)固定格式數(shù)據(jù)進(jìn)行解析,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01