如何使用CMD输入密码连接新的WiFi?
对于我的学校项目,我决定使用 cmd 制作一个 WiFi_manager 程序。
我知道要显示所有 WiFi 网络(在 cmd 中):
netsh wlan show networks
现在假设我想连接到一个我以前从未连接过的 WiFi 网络。并且该 WiFi 也没有添加任何配置文件。
但我知道WiFi密码。
该命令行是什么?
给出以下有关WiFi网络的信息:
SSID 3 : Ismail
Network type : Infrastructure
Authentication : WPA-Personal
Encryption : CCMP
and password is "Thanks_bro".
我已经在谷歌上搜索过这个问题,但没有一个人告诉我正确的方法,而且大多数都与黑客攻击和不带密码连接 WiFi 等有关。所以我把这个问题发布给了这里最优秀的程序员来回答!
如果不可能,我们可以使用 C++ 来做吗?
答案1
不幸的是,如果您想从需要密码的命令提示符连接到无线网络,这将不会发生。
首先,要使用密码连接到无线网络,您需要设置一个配置文件,或者您需要有一个已经设置的配置文件,您可以使用以下方式检查该配置文件
Netsh wlan show profiles
要查看您的个人资料,您需要至少连接该 WiFi 一次。
另一种方法是生成一个 xml 配置文件并使用以下命令连接到它:
netsh wlan connect ssid=YOURSSID name=PROFILENAME interface="WIRELESS NETWORK CONNECTION"
更多信息这里 在本文中
答案2
幸运的是,您只需使用命令提示符就可以轻松连接到受密码保护的无线网络。
首先,创建一个包含 Wi-Fi 连接详细信息的 XML 文件。使用此文件作为模板,将{SSID}
(出现两次)和替换{PASSWORD}
为您自己的:
<?xml version="1.0"?>
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
<name>{SSID}</name>
<SSIDConfig>
<SSID>
<name>{SSID}</name>
</SSID>
</SSIDConfig>
<connectionType>ESS</connectionType>
<connectionMode>auto</connectionMode>
<MSM>
<security>
<authEncryption>
<authentication>WPA2PSK</authentication>
<encryption>AES</encryption>
<useOneX>false</useOneX>
</authEncryption>
<sharedKey>
<keyType>passPhrase</keyType>
<protected>false</protected>
<keyMaterial>{PASSWORD}</keyMaterial>
</sharedKey>
</security>
</MSM>
<MacRandomization xmlns="http://www.microsoft.com/networking/WLAN/profile/v3">
<enableRandomization>false</enableRandomization>
</MacRandomization>
</WLANProfile>
接下来,创建批处理文件(再次替换{SSID}
为您自己的文件):
@echo off
netsh wlan add profile filename="{whatever you named the file}.xml"
netsh wlan connect name="{SSID}"
echo.
pause
受到此处问答的启发(我自己今天也需要这样做):
https://superuser.com/a/1275748/243707
但为什么要停在那里呢?
将整个内容合并为一个脚本,然后清理所有 XML 混乱内容。
@echo off
set "SSID=enter your network name here"
set "HEXSTR=enter your password here"
set "XML_OUTPUT_PATH=%TEMP%\%SSID%-wireless-profile-generated.xml"
echo ^<?xml version="1.0"?^>^<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1"^>^<name^>%SSID%^</name^>^<SSIDConfig^>^<SSID^>^<name^>%SSID%^</name^>^</SSID^>^</SSIDConfig^>^<connectionType^>ESS^</connectionType^>^<connectionMode^>auto^</connectionMode^>^<MSM^>^<security^>^<authEncryption^>^<authentication^>WPA2PSK^</authentication^>^<encryption^>AES^</encryption^>^<useOneX^>false^</useOneX^>^</authEncryption^>^<sharedKey^>^<keyType^>passPhrase^</keyType^>^<protected^>false^</protected^>^<keyMaterial^>%HEXSTR%^</keyMaterial^>^</sharedKey^>^</security^>^</MSM^>^<MacRandomization xmlns="http://www.microsoft.com/networking/WLAN/profile/v3"^>^<enableRandomization^>false^</enableRandomization^>^</MacRandomization^>^</WLANProfile^> >%XML_OUTPUT_PATH%
netsh wlan add profile filename="%XML_OUTPUT_PATH%"
netsh wlan connect name="%SSID%"
del "%XML_OUTPUT_PATH%"
echo.
pause