首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在c++中获取Windows托管网络设备的ip地址(WLANAPI)

在c++中获取Windows托管网络设备的ip地址(WLANAPI)
EN

Stack Overflow用户
提问于 2016-06-03 18:22:05
回答 1查看 1.4K关注 0票数 0

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

我没有发现的是一个内置的方式来获取用于创建托管网络的wifi设备的IP地址。我需要那个地址把服务器绑定到上面。

我唯一能想到的方法是使用设备的MAC地址,并将其与计算机上所有网络设备列表中的条目进行匹配。这是唯一的办法吗?既然wifi托管的设备是虚拟的(根据文档),这还能用吗?

看起来有一种方法(WlanHostedNetworkQueryStatus)可以获得无线局域网设备的MAC地址和GUID,但最好的方法是将其转化为实际的IP地址。

我对C++和Windows开发非常陌生,所以我可能错过了一些简单的东西。

更新

最后,我使用IP帮助API来转换无线局域网GUID到LUID,然后转换LUID到索引。所包含的头文件有点烦人,因为大多数文档似乎都是针对设备驱动程序的。我需要的是。

代码语言:javascript
复制
#include <windows.h>
#include <wlanapi.h>
#include <iphlpapi.h>
#include <netioapi.h>

由于我使用的是Qt,所以我使用了索引来获得一个QNetworkInterface,并从中得到了IPv4地址。这比找出NotifyAddrChangeNotifyIpInterfaceChange要简单得多,不过如果您只是使用Windows,其中之一将是最好的选择。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-03 19:05:35

WlanHostedNetworkQueryStatus函数返回具有成员IPDeviceIDWLAN_HOSTED_NETWORK_STATUS结构。该成员的文件规定:

这是一个虚拟无线设备的GUID,通过调用WlanEnumInterfaces函数是不可用的。此GUID可用于调用其他使用该设备GUID的高层网络功能(例如,IP帮助函数)。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37621103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档