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

 更新时间:2014年08月07日 10:30:36   投稿:shichen2014  
这篇文章主要介绍了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地址是否合法才可以登陆。本文总结的方法希望对大家有所帮助!

相关文章

  • C#设置页面单位和缩放的方法

    C#设置页面单位和缩放的方法

    这篇文章主要介绍了C#设置页面单位和缩放的方法,涉及C#设置页面属性的相关技巧,需要的朋友可以参考下
    2015-06-06
  • C#生成指定范围内的不重复随机数

    C#生成指定范围内的不重复随机数

    对于随机数,大家都知道,计算机不 可能产生完全随机的数字,所谓的随机数发生器都是通过一定的算法对事先选定的随机种子做复杂的运算,用产生的结果来近似的模拟完全随机数,这种随机数被称 作伪随机数。伪随机数是以相同的概率从一组有限的数字中选取的。
    2015-05-05
  • C#基本概念列举详解

    C#基本概念列举详解

    这篇文章主要介绍了C#基本概念列举,需要的朋友可以参考下
    2014-02-02
  • 详解Unity日志打印工具功能

    详解Unity日志打印工具功能

    Unity是一个非常火的游戏引擎,我们再开发的时候有的时候要进行程序的调试,下面给大家介绍下Unity日志打印工具功能,感兴趣的朋友一起看看吧
    2022-01-01
  • c# 适配器模式

    c# 适配器模式

    适配器模式:将一个类的接口转换成客户希望的另一个接口,Adapter使原本由于接口不兼容而不能一起工作的那些类可以一起工作
    2012-10-10
  • C#拆分字符串正则表达式Regex.Split和String.Split方法

    C#拆分字符串正则表达式Regex.Split和String.Split方法

    这篇文章主要给大家介绍了关于C#拆分字符串正则表达式Regex.Split和String.Split方法的相关资料,在C#中,Regex.Split方法和string.Split方法都用于分割字符串,但它们有一些重要的区别,文中通过代码详细讲解下,需要的朋友可以参考下
    2024-04-04
  • C#定时器组件FluentScheduler用法

    C#定时器组件FluentScheduler用法

    这篇文章介绍了C#定时器插件FluentScheduler的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C#实现两个日期比较大小

    C#实现两个日期比较大小

    这篇文章主要为大家详细介绍了C#中实现两个日期比较大小的常见方法,文中的示例代码简洁易懂,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-12-12
  • C#获取指定文件著作权信息的方法

    C#获取指定文件著作权信息的方法

    这篇文章主要介绍了C#获取指定文件著作权信息的方法,涉及C#中FileVersionInfo类的使用技巧,需要的朋友可以参考下
    2015-04-04
  • C#多线程系列之线程完成数

    C#多线程系列之线程完成数

    本文详细讲解了C#多线程中的线程完成数,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02

最新评论