在c++(WLANAPI)中获取Windows wifi托管网络设备的ip地址
Get the ip address of Windows wifi hosted network device in c++ (WLANAPI)
我正在应用程序中添加创建wifi托管网络的功能。我终于得到了在Windows7sdk上运行的示例应用程序。
我没有发现的是一种内置的方式来获取用于创建托管网络的wifi设备的IP地址。我需要那个地址来绑定服务器。
我能想到的唯一方法可能是使用设备的MAC地址,并将其与机器上所有网络设备列表中的条目匹配?这是唯一的办法吗?既然wifi托管设备是虚拟的(根据文件),这还能起作用吗?
看起来有一种方法(WlanHostedNetworkQueryStatus)可以获得使用的无线局域网设备的MAC地址和GUID,但将其转换为实际IP地址的最佳方法让我无法…
我对C++和Windows开发还很陌生,所以也许我缺少一些简单的东西。
更新--
最后,我使用IP助手API将WLAN GUID转换为LUID,然后将LUID转换为Index。包含的头文件有点烦人,因为大多数文档似乎都是为设备驱动程序准备的。我需要的是。
#include <windows.h>
#include <wlanapi.h>
#include <iphlpapi.h>
#include <netioapi.h>
由于我使用Qt,我使用索引来获得QNetworkInterface,并从中获得IPv4地址。这比计算NotifyAddrChange或NotifyIpInterfaceChange更简单,尽管如果你只是使用Windows API,其中之一将是可行的。
WlanHostedNetworkQueryStatus
函数返回一个具有成员IPDeviceID
的WLAN_HOSTED_NETWORK_STATUS
结构。该成员的文件规定:
This is member是虚拟无线设备的GUID,该设备无法通过调用WlanEnumInterfaces函数获得。此GUID可用于调用使用设备GUID的其他更高层网络功能(例如,IP Helper功能)。
IP Helper函数有一个函数ConvertInterfaceGuidToLuid
,它将为您提供一个LUID
,您可以将其与该列表中的其他函数一起使用。
- 为什么我的程序在打开网络设备时遇到问题
- 媒体基金会可以允许多个客户端同时访问单个网络摄像头设备吗?
- 安卓设备上的原生C++ WiFi P2P 网络是否可行?
- statvfs 可以在某些网络设备上阻止吗?如何处理这种情况?
- 使用Boost库中的PC中获取我的以太网设备IP地址的列表
- 在网络C 上获取计算机的IP地址
- 如何在我当前连接的网络中获取本地 IP 地址?
- 在c++(WLANAPI)中获取Windows wifi托管网络设备的ip地址
- 如何在没有网络表条目上下文时删除 IP 地址
- 如何获取本地网络上所有设备的名称和 ip
- 当应用在 Android 设备上运行时,具有 new 的 c++ 对象的内存分配将获得相同的地址
- 如何在给定设备实例ID的情况下可靠快速地获取网卡的MAC地址
- 遗传算法和神经网络:临时地址[-fallowive]
- 如何在Qt中检查网络地址是否为本地地址
- ping 本地网络地址的最快方法
- getifaddrs 是否给我重复的网络接口地址
- 当您拥有蓝牙设备的名称时,您可以获取蓝牙设备的蓝牙MAC地址吗?
- 连接到网络的所有设备的列表
- 如何连接到 sock4 客户端的网络字节地址?
- 哪种语言和库更适合高性能网络设备轮询服务器 (SNMP)