📌  相关文章
📜  获取设备的mac地址 - NAYCode.com - C#(1)

📅  最后修改于: 2023-12-03 15:27:51.676000             🧑  作者: Mango

获取设备的MAC地址 - NAYCode.com - C#

在计算机网络中,每个网络连接设备都有一个唯一的MAC地址,用于在网络中标识一个设备。在C#中,可以使用System.Net.NetworkInformation命名空间下的NetworkInterface类来获取设备的MAC地址。

代码

下面是获取设备MAC地址的示例代码:

using System;
using System.Net.NetworkInformation;

class Program
{
    static void Main(string[] args)
    {
        // 获取本地计算机所有的网络接口
        NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
        
        // 遍历所有网络接口
        foreach (NetworkInterface adapter in nics)
        {
            // 需要排除无法获取MAC地址的虚拟网络适配器
            if (adapter.NetworkInterfaceType == NetworkInterfaceType.Ethernet &&
                adapter.OperationalStatus == OperationalStatus.Up &&
                !adapter.Description.Contains("Virtual"))
            {
                // 获取MAC地址
                PhysicalAddress mac = adapter.GetPhysicalAddress();
                
                // 输出MAC地址
                Console.WriteLine("MAC Address: {0}", mac);
                
                // 退出循环
                break;
            }
        }
    }
}
代码解释

上述示例代码中,首先使用NetworkInterface.GetAllNetworkInterfaces()方法获取本地计算机所有的网络接口,然后遍历所有网络接口。在遍历过程中,需要排除无法获取MAC地址的虚拟网络适配器,例如VMware或VirtualBox等。

如果找到了可以获取MAC地址的网络接口,就使用NetworkInterface.GetPhysicalAddress()方法获取该网络接口的MAC地址,并将其输出。由于一台计算机可能有多个网络接口,因此需要在找到第一个可用的MAC地址后退出循环。

注意事项
  1. 需要在代码中显式引用System.Net.NetworkInformation命名空间。

  2. 需要以管理员权限运行程序才能获取MAC地址。

  3. 由于网络接口数量可能较多,因此代码的执行效率可能较低。

参考文献
  1. MSDN文档:NetworkInterface Class (System.Net.NetworkInformation)

  2. MSDN文档:PhysicalAddress Class (System.Net.NetworkInformation)