我正在开发一种使用VS2010连接无线网络的方法,目前我还在研究如何让它与网络安全密钥连接。我能够列举我所在地区的所有无线热点,并使用Windows Native Wifi函数(WlanOpenHandle、WlanEnumInterfaces、WlanQueryInterface、WlanGetNetworkBssList)获取它们的SSID、MAC地址等。我已经在MSDN上读过关于WlanConnect()
的文章了,但我仍然一无所知。你能给我一些提示,让代码连接到要求网络安全密钥的Wifi吗?
发布于 2013-11-01 21:07:41
假设您至少有一个已保存的Wifi连接,请运行以下命令
netsh wlan export profile
这会将您的所有Wifi配置文件导出为当前目录中的XML文件。
调用WlanConnect
时,如果wLanConnectionMode
设置为wlan_connection_mode_temporary_profile
,则可以在WLAN_CONNECTION_PARAMETERS
结构中提供文字XML配置文件字符串。
如果您可以使用其中一个导出的配置文件中的XML成功连接到安全网络,那么您大概应该能够更改XML并使用相同的技术连接到新网络。
我从未尝试过这种方式,也不知道存储在XML中的键使用了什么编码,但这似乎是一种解决问题的可行方法。
发布于 2014-11-01 04:53:22
按照arx的建议,您首先需要一个示例配置文件。导出配置文件时,请添加key=clear参数。这将导出包含密钥的配置文件。您可以查看需要调整的设置。
示例: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。
https://stackoverflow.com/questions/19703065
复制相似问题