当前位置: 移动技术网 > IT编程>开发语言>c# > C#实现获取MAC地址的方法

C#实现获取MAC地址的方法

2019年07月18日  | 移动技术网IT编程  | 我要评论
本文实例讲述了c#实现获取mac地址的方法,是一个非常常见而且实用的功能,具体方法如下: 主要功能代码如下: /// <summary> ///

本文实例讲述了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地址是否合法才可以登陆。本文总结的方法希望对大家有所帮助!

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网