如何使用 Windows 本机 Wifi 功能连接到请求网络安全密钥的 Wifi
How to connect to a Wifi that requests for a network security key using Windows Native Wifi Functions?
我正在开发一种使用 VS2010 连接到 Wifi 的方法,目前还停留在如何使用网络安全密钥使其连接。我能够枚举我所在地区的所有Wifi热点,并使用Windows Native Wifi函数(WlanOpenHandle,WlanEnumInterfaces,WlanQueryInterface,WlanGetNetworkBssList)获取它们的SSID,MAC地址等。我已经在MSDN上阅读了有关WlanConnect()
的信息,但我仍然一无所知。你能给我一些提示,使代码连接到要求网络安全密钥的 Wifi 吗?
假设您至少有一个保存的 Wifi 连接,请运行命令
netsh wlan export profile
这会将您的所有 Wifi 配置文件导出为当前目录中的 XML 文件。
调用WlanConnect
时,如果wLanConnectionMode
设置为 wlan_connection_mode_temporary_profile
,则可以在 WLAN_CONNECTION_PARAMETERS
结构中提供文本 XML 配置文件字符串。
如果可以使用导出的配置文件之一中的 XML 成功连接到安全网络,那么大概您应该能够更改 XML 并使用相同的技术连接到新网络。
我从未尝试过这个,也不知道存储在 XML 中的密钥使用什么编码,但这似乎是解决您问题的可能方法。
正如 arx 所建议的那样,您需要一个示例配置文件来开始。导出配置文件时,添加键=清除参数。这将导出包含密钥的配置文件。您可以看到需要调整的设置。
例 : netsh wlan export profile name=”<profileName>” folder=”<SaveLocation>” key=clear
生成的 xml 将包含一个部分,其中包含:
<MSM>
<security>
<authEncryption>
<authentication>WPA2PSK</authentication>
<encryption>AES</encryption>
<useOneX>false</useOneX>
</authEncryption>
<sharedKey>
<keyType>passPhrase</keyType>
<protected>false</protected>
<keyMaterial>YourPaswordTextHERE</keyMaterial>
</sharedKey>
</security>
</MSM>
因此,获得配置文件字符串后,使用以编程方式获取的密码更新 keyMaterial 元素。完成此操作后,您应该能够调用wlanConnect。
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 如何在boost beast http请求中设置http头
- 发送一个带有libcurl C++问题的帖子请求:s
- 在多个核心中处理一个HTTP请求
- 错误:请求非类类型为"MULTIMEDIA_FILME [500]"的成员|
- 使用 Winsock2.h C++向不和谐 API 发送 HTTP 请求时出现问题
- 每个服务器请求的内存预算
- 无法使用 ESP32 连接家庭 WiFi?
- std::getline没有在while循环中重新请求用户输入
- 请求最简单的 OpenMP 目标 GPU 示例
- 请求有关C++中嵌入 for 循环的帮助
- 错误:请求从"常量字符 [5]"转换为非标量类型"字符串"
- 使用 winsock 接收 http 请求
- QNetworkAccessManager 稍后在添加请求时删除
- 为什么我收到来自谷歌的错误请求?
- 从网链套接字请求连接设备的列表
- libcurl :C++处理多个异步请求
- 对于 http 请求,python 比 c++ 快吗?
- 通过引用传递向量是请求 std::分配器
- 如何使用 Windows 本机 Wifi 功能连接到请求网络安全密钥的 Wifi