0

我在应用程序中添加了创建 wifi 托管网络的功能。我终于得到了在 Windows 7 sdk 上运行的示例应用程序

我没有找到一种内置方法来获取用于创建托管网络的 wifi 设备的 IP 地址。我需要该地址将服务器绑定到它。

我能想到的唯一方法可能是使用设备的 MAC 地址并将其与机器上所有网络设备列表中的条目匹配?这是唯一的方法吗?由于 wifi 托管设备是虚拟的(根据文档),这是否可行?

看起来有一种方法 (WlanHostedNetworkQueryStatus) 可以获取所使用的 wlan 设备的 MAC 地址和 GUID,但是将其转换为实际 IP 地址的最佳方法却让我望而却步……

我对 C++ 和 Windows 开发还很陌生,所以也许我缺少一些简单的东西。

更新 -

我最终使用IP Helper API将 WLAN GUID 转换为 LUID,然后将LUID 转换为 Index。包含的头文件有点烦人,因为大多数文档似乎都是针对设备驱动程序的。我需要的是。

#include <windows.h>
#include <wlanapi.h>
#include <iphlpapi.h>
#include <netioapi.h>

由于我使用的是 Qt,因此我使用索引来获取 QNetworkInterface 并从中获得 IPv4 地址。它比找出NotifyAddrChangeNotifyIpInterfaceChange更简单,但如果您只是使用 Windows API,其中之一就是要走的路。

4

1 回答 1

1

WlanHostedNetworkQueryStatus函数返回一个WLAN_HOSTED_NETWORK_STATUS具有成员的结构IPDeviceID。该成员的文档指定:

这是成员是虚拟无线设备的 GUID,无法通过调用 WlanEnumInterfaces 函数获得。此 GUID 可用于调用使用设备 GUID 的其他更高层网络功能(例如,IP 助手功能)。

IP Helper函数有一个 function ConvertInterfaceGuidToLuid,它将为您提供一个LUID可以与该列表中其他函数一起使用的函数。

于 2016-06-03T19:05:35.960 回答