Connexion à un wifi sécurisé en langage c

Fermé
romin.tomasetti Messages postés 23 Date d'inscription mardi 28 août 2012 Statut Membre Dernière intervention 29 octobre 2013 - 26 oct. 2013 à 21:12
 rahmaiyed123 - 30 mars 2015 à 13:38
Bonjour!
Je suis en pleine création d'un petit programme sympa mais je bloque sur un partie de mon code. En effet, je voudrais que cette partie de code demande à l'utilisateur de rentrer le code de son wifi(clé WPA ou WEP) afin qu'il puisse s'y connecter. Mais je ne trouve aucune information sur le Net concernant cela. Si vous avez une quelconque information là dessus, je vous en serez reconnaissant :)
Merci à vous!
A voir également:

4 réponses

[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
Modifié par [Dal] le 28/10/2013 à 14:02
Salut romin.tomasetti,

1.

gravgun a raison de dire que la méthode change selon l'OS concerné. En réponse, tu dis que ta question concerne Windows.

La méthode est, en fait, également différente selon la version de Windows.

Pour XP tu as une API qui s'appelle "Wireless Zero" configuration. On doit pouvoir trouver du code d'exemple sur MSDN pour cette méthode, mais cela doit être un peu enfoui, car cette méthode n'est pas supportée par les versions de Windows postérieures à XP.

Pour Windows Vista et +, tu peux utiliser la "Native Wifi API". Tu as un exemple de code à télécharger là : https://docs.microsoft.com/en-us/windows/win32/nativewifi/native-wifi-api-sample?redirectedfrom=MSDN

Toujours pour Vista ou +, tu as aussi des exemples passant par ShellExecute, au lieu des API Windows, là : https://docs.microsoft.com/en-us/windows/win32/nativewifi/wireless-user-interface-apis?redirectedfrom=MSDN permettant simplement de démarrer le Wizard de connexion, ou le gestionnaire de réseaux sans fils.

Il y a aussi des méthodes et API propres à Windows 8 et +, propres à une connexion ad hoc seulement, semble-t-il : Wi-Fi Direct, c'est à dire pour se connecter à un autre appareil doté de wifi, et non pas à un point d'accès.

2.

Sur le plan de la méthode, je ne comprend pas très bien ce que tu cherches à faire, et je trouve bizarre que cela soit ton application qui gère cela (à moins que tu développes un gestionnaire de réseaux sans fil).

En tant qu'utilisateur, je n'aimerai pas avoir à donner mon code wifi à autre chose que le gestionnaire de connexions wifi de ma machine (qui doit déjà l'avoir). Il devrait être de la responsabilité de l'utilisateur d'établir une connexion, me semble-t-il. En fait, cela va m'irriter, car mon code est tellement long et compliqué que je ne m'en souvient pas, et que mon ordinateur aura déjà établit sa connexion à mon réseau habituel au démarrage.


Dal
1
romin.tomasetti Messages postés 23 Date d'inscription mardi 28 août 2012 Statut Membre Dernière intervention 29 octobre 2013 2
29 oct. 2013 à 00:34
Je n'arrive pas à trouver mon bonheur dans tout cela... Je voudrais en fait que mon programme lise un fichier dans lequel la clé du Wi-Fi est inscrite, la lise et l'utilise pour se connecter au point d'accès wifi et je n'ai trouvé aucune fonction qui prenne en compte la clé wifi(et ce n'est pas faute d'avoir chercher :( ). Peut-être que mon projet est irréalisable en C... Même si j'y crois encore! Merci en tout cas pour le temps que bous m'avez déjà accordé!
0
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
Modifié par [Dal] le 29/10/2013 à 12:27
Comme indiqué dans le lien posté tu peux trouver un exemple de code dans le Windows SDK dans C:\Program Files\Microsoft SDKs\Windows\<version number>\Samples\NetDs\Wlan qui te montrera, notamment, utiliser la fonction WlanConnect.

As-tu fait cela ?

tu dois notamment utiliser :

- WlanOpenHandle
- WlanConnect avec le handle créé
- PWLAN_CONNECTION_PARAMETERS est une structure décrite
- tu définiras wlanConnectionMode à wlan_connection_mode_temporary_profile puisque ton profil ne sera pas en dur, mais récupéré à partir de ton "fichier" contenant le mot de passe
- ton fichier contenant le mot de passe devra contenir toutes les autres informations nécessaires à la description de la connexion à établir selon un format xml précis, tu as des exemples de profils

Pour savoir comment utiliser tout cela, il faut comprendre chacun de ces éléments, l'exemple précité de Microsoft est précieux. Il te montrera aussi comment trouver le GUID de l'interface réseau sans fil que tu peux utiliser, etc.

Tu as du code tout fait à ta disposition, comprend le, et utilise le :-)


Dal
0
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
29 oct. 2013 à 12:49
Si utiliser les API de Windows te semble trop compliqué, sur Vista et +, tu devrais avoir l'utilitaire de ligne de commande Netsh, qui devrait te permettre d'utiliser un profil de connexion à partir de la ligne de commande. Ton programme C se contenterait de lancer Netsh avec les bons arguments.

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd744889(v=ws.10)?redirectedfrom=MSDN

Créer un profil devient aussi simple que :
netsh wlan add profile filename="c:\chemin\vers\wlan-monprofil.xml"

afficher les interfaces existantes :
netsh wlan show interfaces 

et s'y connecter
netsh wlan connect name=monprofil

Tu trouves des exemples sur Internet.

par exemple :

https://www.nextofwindows.com/how-to-manage-a-wireless-wifi-network-from-the-command-line-in-windows-7/


Dal
0
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
29 oct. 2013 à 14:15
Il y a une coquille, pour "connect", l'argument "interface" est obligatoire (c'est pourquoi je t'ai montré comment obtenir la liste des interfaces avec le même outil).

netsh wlan connect name=monprofil interface=InterfaceName
0
rahmaiyed123
30 mars 2015 à 13:38
slt, qqu'un m'aider svp, par quelle langage on developpe un certificat dans l'architecture wifi et leur syntaxe
0
Nabilou53 Messages postés 176 Date d'inscription mercredi 6 février 2013 Statut Membre Dernière intervention 14 avril 2014 5
26 oct. 2013 à 21:14
Salut, je tien a te faire un calin si grâce a toi je trouve la réponse.
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
26 oct. 2013 à 22:46
Salut, sur quelle plateforme tu comptes faire ça? C'est super important car c'est très différent selon l'OS visé.
0
romin.tomasetti Messages postés 23 Date d'inscription mardi 28 août 2012 Statut Membre Dernière intervention 29 octobre 2013 2
27 oct. 2013 à 14:14
Je voudrais le faire sur Windows :)
0