本文實例講述了C#實現獲取MAC地址的方法,是一個非常常見而且實用的功能,具體方法如下:
主要功能代碼如下:
/// <summary>/// 根據網卡類型來獲取mac地址/// </summary>/// <param name="networkType">網卡類型</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>/// 根據網卡類型以及網卡狀態獲取mac地址/// </summary>/// <param name="networkType">網卡類型</param>/// <param name="status">網卡狀態</param>///Up 網絡接口已運行,可以傳輸數據包。 ///Down 網絡接口無法傳輸數據包。 ///Testing 網絡接口正在運行測試。 ///Unknown 網絡接口的狀態未知。 ///Dormant 網絡接口不處于傳輸數據包的狀態;它正等待外部事件。 ///NotPresent 由于缺少組件(通常為硬件組件),網絡接口無法傳輸數據包。 ///LowerLayerDown 網絡接口無法傳輸數據包,因為它運行在一個或多個其他接口之上,而這些“低層”接口中至少有一個已關閉。 /// <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地址是否合法才可以登陸。本文總結的方法希望對大家有所幫助!
新聞熱點
疑難解答