如何仅使用 CMD 连接到 WiFi?

如何仅使用 CMD 连接到 WiFi?

如何使用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

相关内容