【问题标题】:Get the ip address of Windows wifi hosted network device in c++ (WLANAPI)在 C++ (WLANAPI) 中获取 Windows wifi 托管网络设备的 IP 地址
【发布时间】:2016-06-03 18:22:05
【问题描述】:

我在应用程序中添加了创建 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 地址。这比找出NotifyAddrChangeNotifyIpInterfaceChange 更简单,但如果您只使用Windows API,其中一种方法就是要走的路。

【问题讨论】:

    标签: c++ windows winapi visual-c++ wlanapi


    【解决方案1】:

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

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

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

    【讨论】:

    • 真的可以使用更多信息,但它让我开始了。
    猜你喜欢
    • 2023-03-03
    • 2013-12-14
    • 2013-03-05
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多