我在应用中添加了创建wifi托管网络的功能。我终于得到了example app working from the Windows 7 sdk。
我找不到的是获取用于创建托管网络的wifi设备的IP地址的内置方法。我需要该地址将服务器绑定到它。
我能想到这样做的唯一方法是使用设备的MAC地址并将其与机器上所有网络设备列表中的条目相匹配?这是唯一的方法吗?这甚至可以工作,因为wifi托管设备是虚拟的(根据文档)?
看起来有一种方法(WlanHostedNetworkQueryStatus)来获取所使用的wlan设备的MAC地址和GUID,但是将其转换为实际IP地址的最佳方式使我无法...
我对C ++和Windows开发很陌生,所以也许这是我想念的简单。
更新 -
我最终使用IP Helper API转换WLAN GUID to LUID,然后转换LUID to Index。包含的头文件有点烦人,因为大多数文档似乎都适合设备驱动程序。我需要的是。
#include <windows.h>
#include <wlanapi.h>
#include <iphlpapi.h>
#include <netioapi.h>
由于我正在使用Qt,我使用索引来获取QNetworkInterface,并从中获得了IPv4地址。这比找出NotifyAddrChange或NotifyIpInterfaceChange更简单,但如果您只是使用Windows API,那么其中一种方法就可以了。
答案 0 :(得分:1)
WlanHostedNetworkQueryStatus
函数返回具有成员IPDeviceID
的{{3}}结构。该成员的文档指定:
这是成员是虚拟无线设备的GUID,通过调用WlanEnumInterfaces函数无法使用它。此GUID可用于调用使用设备GUID的其他更高层网络功能(例如,IP帮助程序功能)。
WLAN_HOSTED_NETWORK_STATUS
函数有一个函数IP Helper,它将为您提供一个LUID
,您可以将该函数与该列表中的其他函数一起使用。