IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Connexion WIFI -> SSID + WPA


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Developpeur Electronique/Info. Indus. - option bricolage
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur Electronique/Info. Indus. - option bricolage

    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    Points : 28
    Points
    28
    Par défaut Connexion WIFI -> SSID + WPA
    Bonjour,

    Pour une de mes applications je communique avec un appareil électronique en TCP/IP.
    Pour faciliter l'installation je veux configurer automatiquement les cartes réseau. pour
    le moment je force l'IP/MASK/GATEWAY, peux activer/ désactiver , tout ça avec WMI.

    Maintenant dans le cas d'une carte WIFI je veux forcer la connexion du SSID et de la clef WPA.
    et c'est la ou je bute. Je n'ai pas encore trouvé d'info sur MSDN donc si une âme charitable a une
    idée à me proposer je suis preneur ( de préférence en C# mais je suis ouvert a tout )

    pour répondre aux premières question :

    RQ1 : Non ce n'est pas pour faire du Brut-Forcing , bien qu'a première vue ça pourrait s'y apparenter (mouai .. pas sur que ce soit aussi simple)

    RQ2 : je sais que configurer une carte réseau est affreusement simple pour vous et moi (quoique dans certains réseau on se demande des fois)
    mais même avec une doc certains n'y comprennent rien et ne veulent pas chercher a comprendre. (HotLine pour configurer un réseau ca saoule parfois)

    donc merci d'avance a vous ami développeurs de bonne volonté

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Je ne suis pas sûr que WMI soit la meilleure façon de procéder. Depuis XP SP2 il existe une API native pour gérer les connexion wifi.

    En C#, il y a le projet Managed Wifi API qui permet d'avoir accès à cette API et donc de pouvoir se connecter assez simplement à un réseau WIFI. Tu pourras trouver des exemples de code sur le lien que je t'ai donné (codeplex). Est-ce que ça répond à ton besoin ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Developpeur Electronique/Info. Indus. - option bricolage
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur Electronique/Info. Indus. - option bricolage

    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    Points : 28
    Points
    28
    Par défaut
    c'est possible, je vais essayer de regarder cette semaine.

    Pour ma part j'en étais arrivé ici : http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

    Merci beaucoup pour le lien.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Developpeur Electronique/Info. Indus. - option bricolage
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur Electronique/Info. Indus. - option bricolage

    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    Points : 28
    Points
    28
    Par défaut
    Bon apparemment c'est ce qu'il me fallait merci pour ton lien.
    Par contre j'ai du faire un tour sur MSDN pour compléter le profile car je n'ai pas trouvé de doc
    sur le site, ni d'information très formelle. Just un forum avec peu de réponse..

    Enfin le but est de chercher un peu. Je mets un bout de code fonctionnel si un jour quelqu'un est dans le même cas que moi.
    Juste un peteit bug non encore résolu c'est que malgré la connexion établie (SSID + WPA) j'ai tout de même un message d'erreur :
    "Element introuvable". Peut être un manque dans le profile. je l'ai géré très salement pour le moment mais la fonctionnalité est là.

    Je check comme résolu . Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
     
    using System;
    using System.Collections.Generic;
    using NativeWifi;
    using System.Linq;
    using System.Text;
    using System.Net;
    using System.Net.NetworkInformation;
    using System.Xml;
    using System.IO;
     
     
    namespace TestAPI
    {
        class Program
        {
            static WlanClient mWifi = new WlanClient();
            static NetworkInterface[] ListInterfaces;
     
            static string ConvertToHex(string val)
            {
                string XX = string.Empty;
                Char[] mtab = val.ToCharArray();
                for (int i = 0; i < mtab.Length; i++)
                {
                    XX += string.Format("{0:X}", (int)mtab[i]);
                }
                return XX;
            }
     
            static string CreateProfile(string reseau, string SSID, string PWD)
            {
                StringBuilder xmlProfileString = new StringBuilder(100);
                XmlWriterSettings settings = new XmlWriterSettings();
                settings.Indent = true;
                settings.NewLineOnAttributes = true;
     
                XmlWriter writer = XmlWriter.Create(xmlProfileString, settings);
     
                writer.WriteStartElement("WLANProfile", @"http://www.microsoft.com/networking/WLAN/profile/v1");
                    writer.WriteElementString("name", "profileCRYO");
                    writer.WriteStartElement("SSIDConfig");
                        writer.WriteStartElement("SSID");
                            writer.WriteElementString("hex", ConvertToHex(SSID));
                            writer.WriteElementString("name", SSID);
                        writer.WriteEndElement();
                    writer.WriteEndElement();
     
                    writer.WriteElementString("connectionType", "ESS"); // connection type = Infrastructure
                    writer.WriteElementString("connectionMode", "auto"); // connection type = Infrastructure
                    writer.WriteElementString("autoSwitch", "false"); // connection type = Infrastructure
     
                    writer.WriteStartElement("MSM");
                        writer.WriteStartElement("security");
                            writer.WriteStartElement("authEncryption");
                                writer.WriteElementString("authentication", "WPA2PSK");
                                writer.WriteElementString("encryption", "AES");
                                writer.WriteElementString("useOneX", "false");
                            writer.WriteEndElement();
                            writer.WriteStartElement("sharedKey");
                                writer.WriteElementString("keyType", "passPhrase");
                                writer.WriteElementString("protected", "false");
                                writer.WriteElementString("keyMaterial", PWD);
                            writer.WriteEndElement();
                        writer.WriteEndElement();
                    writer.WriteEndElement();
     
                writer.Close();
     
                StreamWriter SW = new StreamWriter("D:\\TEST2.xml");
                SW.Write(xmlProfileString.ToString());
                SW.Flush();
                SW.Close();
     
                return xmlProfileString.ToString();
            }
     
     
            static void Main(string[] args)
            {
                string NomReseau = "profileTEST";
                string XmlProfile = CreateProfile(NomReseau, "<NOM_SSID>", "<PASSWORD_WPA2_AES>");
                WlanClient.WlanInterface[] mInterface = mWifi.Interfaces;
     
                foreach (WlanClient.WlanInterface Carte in mInterface)
                {
     
                    Carte.SetProfile(Wlan.WlanProfileFlags.AllUser, XmlProfile, true);
                    try
                    {
                        Carte.Connect(Wlan.WlanConnectionMode.Profile, Wlan.Dot11BssType.Any, NomReseau);
                    }
                    catch(Exception ee)
                    {
                        if (!ee.Message.Contains("introuvable"))
                        {
                            Console.WriteLine("Erreur de connexion :");
                            Console.WriteLine(ee.Message + "\r\n");
                        }
                    }
                    break;
                }
                Console.WriteLine("Presser une touche pour continuer");
                Console.ReadKey();
     
            }
        }
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Debian] Connexion wifi avec clés WPA
    Par gege2061 dans le forum Réseau
    Réponses: 8
    Dernier message: 14/10/2008, 21h03
  2. utilitaire connexion wifi - wpa
    Par hologram dans le forum Composants
    Réponses: 1
    Dernier message: 23/12/2007, 14h17
  3. Pb de connexion Wifi sur 1 réseau
    Par sal dans le forum Hardware
    Réponses: 3
    Dernier message: 20/01/2006, 05h09
  4. connexion wifi et adaptateur usb
    Par HULK dans le forum Hardware
    Réponses: 1
    Dernier message: 10/09/2005, 16h16
  5. Connexion wifi livebox
    Par olive.m dans le forum Réseau
    Réponses: 4
    Dernier message: 11/07/2005, 16h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo