📅  最后修改于: 2023-12-03 15:27:51.676000             🧑  作者: Mango
在计算机网络中,每个网络连接设备都有一个唯一的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地址后退出循环。
需要在代码中显式引用System.Net.NetworkInformation
命名空间。
需要以管理员权限运行程序才能获取MAC地址。
由于网络接口数量可能较多,因此代码的执行效率可能较低。