如何仅使用CMD连接到WiFi?

时间:2016-12-15 12:03:33

标签: windows batch-file cmd

如何使用CMD输入密码连接到新的WiFi?

对于我的学校项目,我决定使用cmd制作一个WiFi_manager程序。

我知道要显示所有WiFi网络(cmd):

$("#" + expandingElement).show();

现在假设我想连接到之前从未连接过的WiFi网络。并且该WiFi尚未添加到配置文件中。

但我知道WiFi的密码。

1)该命令行是什么。

鉴于以下WiFi网络的信息:

netsh wlan show networks

如果无法做到这一点,是否可以使用C ++完成?

3 个答案:

答案 0 :(得分:12)

所以你已经知道netsh wlan

如果输入它,您将获得可能的命令列表。一个是add

如果输入netsh wlan add,则会获得另一个可能的子命令列表。一个是profile

如果您输入netsh wlan add profile,您将获得有关其所有可能参数的详细说明。一个必需参数是包含配置文件信息的XML文件。

那么如何获得这样的XML文件呢?返回netsh wlan并研究关键字。有export

如果输入netsh wlan export,则会获得另一个可能的子命令列表。一个是profile。它在本地目录中创建一个XML,其中包含当前WiFi连接所需的信息。

如果您想以明文形式获取密码,则还必须添加参数key=clear。使整个命令变为

netsh wlan export profile key=clear

以下是已包含所需占位符的示例

<?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}(发生两次)和{password}替换为所需的值,然后通过调用

导入该文件
netsh wlan add profile filename="myProfile.xml"

答案 1 :(得分:0)

命令提示符处的基本netsh wlan ?表示存在netsh wlan connect命令。但是,似乎此命令需要预先存在的&#34;配置文件&#34 ;;你需要使用netsh wlan add创建它 详细信息留给读者练习。 (毕竟这是家庭作业。)

使用Windows SDK中包含的Windows API,还有一个使用C / C ++的WLAN客户端示例。我通过搜索 wlanclient msdn 找到了这个,页面是here

答案 2 :(得分:-1)

在Mac上,您可以在终端中使用以下bash行登录到wifi网络:

networksetup -setairportnetwork port networkname password

注意:

端口是您的wifi端口(在我的Mac上是端口en0)

网络名称是网络名称,例如星巴克

密码只是网络的直接密码

如果密码已经保存在钥匙串中,则不需要该参数

这也应该在其他系统上工作