web-dev-qa-db-fra.com

Comment se connecter à un réseau Wi-Fi utilisant uniquement CMD?

Comment se connecter à un nouveau réseau WiFi en entrant un mot de passe avec CMD?

Pour mon projet d'école, j'ai décidé de créer un programme WiFi_manager à l'aide de cmd.

Je sais afficher tous les réseaux WiFi (en cmd):

netsh wlan show networks

Maintenant, disons que je veux me connecter à un réseau WiFi que je n'avais jamais connecté auparavant. Et ce WiFi n'est pas encore ajouté aux profils.

Mais je connais le mot de passe du WiFi. 

1) Quelle sera la ligne de commande pour cela.

Compte tenu des informations du réseau WiFi ci-dessous:

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

and password is "Thanks_bro".

Si ce n'est pas possible, peut-on utiliser C++?

7
Jim Kim.

Donc vous connaissez déjà netsh wlan

Si vous le saisissez, vous obtenez une liste de commandes possibles. L'un est add.

Si vous entrez netsh wlan add, vous obtenez une autre liste de sous-commandes possibles. L'un est profile.

Si vous entrez netsh wlan add profile, vous obtenez une explication détaillée de tous ses paramètres possibles. Un paramètre nécessaire est un fichier XML contenant les informations de profil.

Alors, comment obtenir un tel fichier XML? Retournez à netsh wlan et étudiez les mots-clés. Il y a export.

Si vous entrez netsh wlan export, vous obtenez une autre liste de sous-commandes possibles. L'un est profile. Il crée un fichier XML dans votre répertoire local contenant les informations nécessaires à votre connexion WiFi actuelle.

Si vous souhaitez obtenir le mot de passe en texte clair, vous devez également ajouter le paramètre key=clear. Faire toute la commande devenir

netsh wlan export profile key=clear

Voici un exemple qui contient déjà les espaces réservés nécessaires

<?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>

Il suffit de remplacer les mots clés {SSID} (se produit deux fois) et {password} par les valeurs souhaitées et d'importer ce fichier en appelant

netsh wlan add profile filename="myProfile.xml"
7
Oliver

Un netsh wlan ? de base à une invite de commande indique qu'il existe une commande netsh wlan connect. Cependant, il semble que cette commande nécessite un "profil" préexistant; vous auriez besoin de créer cela en utilisant netsh wlan add.
Les détails sont laissés comme un exercice pour le lecteur. (Ce sont des devoirs, après tout.)

Il existe également un exemple de client WLAN en C/C++ utilisant l’API Windows incluse dans le SDK Windows. J'ai trouvé cela en recherchant wlanclient msdn, la page est ici .

0
David