[英]How to connect to a Wifi that requests for a network security key using Windows Native Wifi Functions?
我正在开发一种使用VS2010连接到Wifi的方法,目前仍在研究如何使其与网络安全密钥连接。 我能够枚举我所在区域的所有Wifi热点,并使用Windows本机Wifi函数(WlanOpenHandle,WlanEnumInterfaces,WlanQueryInterface,WlanGetNetworkBssList)获取其SSID,MAC地址等。 我已经在MSDN上阅读了有关WlanConnect()
,但我仍然一无所知。 您能否给我一些提示,以使代码连接到要求网络安全密钥的Wifi?
假设您至少有一个已保存的Wifi连接,请运行以下命令
netsh wlan export profile
这会将所有Wifi配置文件导出为当前目录中的XML文件。
如果将wLanConnectionMode
设置为wlan_connection_mode_temporary_profile
则在调用WlanConnect
时可以在WLAN_CONNECTION_PARAMETERS
结构中提供文字XML配置文件字符串。
如果可以使用导出的配置文件之一中的XML成功连接到安全网络,则大概应该可以更改XML并使用相同的技术连接到新网络。
我从未尝试过这种方法,也不知道XML中存储的密钥使用了哪种编码,但是这似乎是解决问题的一种可行方法。
正如arx所建议的,您将需要一个示例配置文件开始。 导出配置文件时,添加key = clear arg。 这将导出配置文件,其中包含密钥。 然后,您可以看到需要调整的设置。
示例: 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。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.