C#实现获取MAC地址的方法
程序员文章站
2024-02-17 10:06:40
本文实例讲述了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地址是否合法才可以登陆。本文总结的方法希望对大家有所帮助!
下一篇: Java异常退出条件的判断示例代码