gpt4 book ai didi

c# - GetAllNetworkInterfaces 需要一些垃圾

转载 作者:行者123 更新时间:2023-11-30 16:29:13 24 4
gpt4 key购买 nike

我正在使用 NetworkInterface.GetAllNetworkInterfaces() 获取我的网络接口(interface),

然后我尝试获取我的 MAC 地址(NetInterf[i].GetPhysicalAddress())

它带走了我的真实界面和一些垃圾:

[0]: ""
[1]: "00E018998877"
[2]: "001F3C0B4F5D"
[3]: ""
[4]: "00000000000000E0"
[5]: "00000000000000E0"
[6]: "00000000000000E0"
[7]: "00000000000000E0"

[1]和[2]我的真实MAC地址,但其他的是错误的,MAC 地址必须有 6 个字节,不是吗?

在程序中我用这样的条件过滤

if (NetInterf[i].GetPhysicalAddress().GetAddressBytes().Length == 6)

我做得对吗?因为我在 MSDN 中找不到任何相关信息。

最佳答案

获得所有真实接口(interface)的更清晰的方法是使用WMI。您可以从 Win32_NetworkAdapter 检索所有网络适配器信息类(class)。要确定适配器是物理适配器还是逻辑适配器,需要检查 PhysicalAdapter 属性。这是示例:

var scope = new ManagementScope(@"\\localhost\root\cimv2");
scope.Connect();
var query = new ObjectQuery(@"SELECT * FROM Win32_NetworkAdapter WHERE PhysicalAdapter = True");
var searcher = new ManagementObjectSearcher(scope, query);

var networkInterfaces = searcher.Get();
foreach (var networkInterface in networkInterfaces)
{
Console.WriteLine(string.Format("{0} - {1}", networkInterface["MACAddress"], networkInterface["Name"]));
}

使用 NetworkInterface.GetAllNetworkInterfaces() 您无法确定。

关于c# - GetAllNetworkInterfaces 需要一些垃圾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6503170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com