[英]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.