it-swarm.com.ru

Как подключиться к WiFi, используя только CMD?

Как подключиться к новому WiFi, введя пароль с помощью CMD?

Для своего школьного проекта я решил создать программу WiFi_manager с использованием cmd.

Я знаю, чтобы отобразить все сети WiFi (в CMD):

netsh wlan show networks

Теперь допустим, что я хочу подключиться к сети Wi-Fi, которую я никогда раньше не подключал. И этот WiFi еще не добавлен в профили.

Но я знаю пароль от WiFi. 

1) Какой будет командная строка для этого.

Учитывая информацию о сети WiFi ниже:

SSID 3 : Ismail
    Network type            : Infrastructure
    Authentication          : WPA-Personal
    Encryption              : CCMP

and password is "Thanks_bro".

Если это невозможно, можно ли это сделать с помощью C++?

7
Jim Kim.

Итак, вы уже знаете 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"
7
Oliver

Базовый netsh wlan ? в командной строке показывает, что есть команда netsh wlan connect. Однако, похоже, что эта команда требует предварительно существующего «профиля»; вам нужно создать это с помощью netsh wlan add.
Подробности оставлены в качестве упражнения для читателя. (Это домашнее задание, в конце концов.)

Существует также пример клиента WLAN на C/C++ с использованием Windows API, включенного в Windows SDK. Я нашел это путем поиска wlanclient msdn, страница находится в здесь .

0
David