C#完成獲得MAC地址的辦法。本站提示廣大學習愛好者:(C#完成獲得MAC地址的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#完成獲得MAC地址的辦法正文
本文實例講述了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地址能否正當才可以上岸。本文總結的辦法願望對年夜家有所贊助!