【问题标题】:How to identify "Wireless Hosted Network" inside GetAdaptersAddresses results如何在 GetAdaptersAddresses 结果中识别“无线托管网络”
【发布时间】:2019-03-08 15:15:57
【问题描述】:

我正在使用GetAdaptersAddresses Win32 API 枚举计算机的 MAC 地址,该 API 返回该计算机上所有适配器的列表。 当用户打开 WiFi 时,列表包含三个新元素:

  • XXXXXXXXFCD8:实际 WiFi(英特尔)
  • XXXXXXXXXFCDA:微软虚拟 WiFi
  • XXXXXXXXXFCDA:微软虚拟 WiFi

MAC 地址的开头已被编辑,但除了最后一位翻转了一位之外,它们都是相同的。我知道这两张虚拟 WiFi 卡来自 Wireless Hosted Network 功能,但我不能要求每个用户都将其关闭。
因为我只对实际的 WiFi 卡感兴趣,所以我试图找到一种方法来可靠地识别两个“Microsoft Virtual WiFi”卡。我查看了IP_ADAPTER_ADDRESSES 结构的各个成员,这些成员给了我以下信息。

真正的 WiFi:

FriendlyName = Connexion réseau sans fil 4
AdapterName = {57DA33EE-F8E2-4F2C-B989-12EEB680CD64}
Description = Intel(R) Dual Band Wireless-AC 7260 #2
PhysicalAddressLength = 6
PhysicalAddress = 0000XXXXXXXXFCD8
Flags = 01E5
IfType = 71
TunnelType = 0
OperStatus = 1

第一个虚拟 WiFi:

FriendlyName = Connexion réseau sans fil 5
AdapterName = {7E6DCD1E-BFBB-41AF-A4B1-467C2FFB5D5E}
Description = Microsoft Virtual WiFi Miniport Adapter #3
PhysicalAddressLength = 6
PhysicalAddress = 0000XXXXXXXXFCDA
Flags = 01C5
IfType = 71
TunnelType = 0
OperStatus = 2

第二个虚拟 WiFi

FriendlyName = Connexion réseau sans fil 6
AdapterName = {CC263A05-8034-46C9-9060-FC353D9BBBCB}
Description = Microsoft Virtual WiFi Miniport Adapter #4
PhysicalAddressLength = 6
PhysicalAddress = 0000XXXXXXXXFCDA
Flags = 01C5
IfType = 71
TunnelType = 0
OperStatus = 2

如您所见,除了似乎没有本地化的Description,我看不出这三个网卡之间有任何区别。

您是否知道另一个 API 可以让我检查给定适配器是否来自“无线托管网络”功能?

如果不是,您认为在Description 成员中搜索Microsoft Virtual WiFi 会是一种时间弹性的方式吗?

【问题讨论】:

  • 在您的输出中,标志不一样。

标签: windows winapi wifi


【解决方案1】:

适配器之间的Flags 不同

真正的 WiFi 有这些标志:

0x01E5 (0111100101)

虚拟适配器有这些标志:

0x01C5 (0111000101)

如您所见,它们相差 1 位。

Microsoft 确实有一组 API 函数用于处理 Wireless Hosted Network。您可以尝试查询托管网络的信息并尝试将其与您的适配器信息相匹配。例如,WlanHostedNetworkQueryStatus 将为您提供托管网络的虚拟设备的 GUID。

此外,Microsoft 有一个WlanEnumInterfaces() 函数,用于确定可用的 WiFi 网络接口及其 GUID。根据文档,此列表中不包含虚拟托管网络接口。因此,您也可以尝试将其用作一种过滤机制。

【讨论】:

  • 是的,flags不同,但是额外的位也在其他合法接口上设置,所以不能用来识别WHN接口。不过,我会看看另外两个 API,它们看起来很有希望。
猜你喜欢
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-26
  • 2013-08-13
相关资源
最近更新 更多