C#断网情况下获取本机MAC地址的方法

本文介绍了在网络断开连接的情况下,如何使用C#编程获取本机MAC地址的问题。通常方法通过WMI服务获取MAC地址可能失败,但通过改进的NetworkInterface方式,即使在断网条件下也能确保获取MAC地址,以满足如MQ通信等场景的需求。通过排序多个网卡的MAC地址,选择最大或最小值来确保获取到稳定的MAC标识。
摘要由CSDN通过智能技术生成

MAC地址用于在网络中唯一标识一个网卡,在网络应用中用来确认网上设备的位置。

查到的获取MAC的几种方式(参考:https://www.cnblogs.com/diulela/archive/2012/04/07/2436111.html),其中通过WMI系统服务读取MAC地址的方式比较常用,方法如下:

///<summary>
/// 通过WMI读取MAC
///</summary>
///<returns></returns>
public static List<string> GetMacByWMI()
{
  List<string> macs =new List<string>();
  try
  {
    string mac ="";
    ManagementClass mc =new ManagementClass("Win32_NetworkAdapterConfiguration");
    ManagementObjectCollection moc = mc.GetInstances();
    foreach (ManagementObject mo in moc)
    {
      if ((bool)mo["IPEnabled"])
      {
        mac = mo["MacAddress"].ToString();
        macs.Add(mac);
      }
    }
    moc =nu
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RunnerDNA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值