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++/CLI Discussion :

Trouver les interfaces réseau et différencier Filaire ou Wifi


Sujet :

C++/CLI

  1. #1
    Membre à l'essai
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2011
    Messages : 22
    Points : 23
    Points
    23
    Par défaut Trouver les interfaces réseau et différencier Filaire ou Wifi
    Bonjour à tous,

    En C++, j'essaie de récupérer la configuration des interfaces réseau d'un PC sous XP.

    J'ai essayé avec la fonction GetAdaptersInfo (http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx), puis avec des requêtes WMI et la classe Win32_NetworkAdapter (http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx), mais à chaque fois le type de l'interface sort comme du Wifi, alors que sous Seven on sait faire la différence...

    Pour GetAdaptersInfo, ok c'était marqué dans le MSDN que le type Wireless n'était pas supporté par XP. Mais en WMI j'étais plus confiant :/

    Bref, raté...

    Sauf que maintenant je n'ai plus d'idée pour faire la différence... Connaissez-vous d'autres moyens d'avoir cette information?
    Sachant que je ne peux pas faire une recherche dans le nom de la carte.

    Lorsqu'on va dans "Connexions Réseau", Windows sait bien faire la différence entre une carte Ethernet ou Wifi, donc je me dis que l'information doit bien être quelque part, non?

    Merci à tous ceux qui voudront m'aider

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 083
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 083
    Points : 12 142
    Points
    12 142
    Par défaut
    Windows sait bien faire la différence entre une carte Ethernet ou Wifi
    Les Wifi sont des types d'Ethernet pas un nouveau protocole de couche 2 de l'OSI.

    Dans WMI : préfixe du nom de la Classe de l'objet

    http://blogs.msdn.com/b/ndis/archive...i-classes.aspx

    API Native Wifi :
    WlanEnumInterfaces
    http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

  3. #3
    Membre à l'essai
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2011
    Messages : 22
    Points : 23
    Points
    23
    Par défaut
    Merci beaucoup

    Je pense essayer d'utiliser les API Wifi du coup.
    En comparant le GUID d'une boucle GetAdaptersInfo et celui de l'API Wifi.
    C'est pourri comme raisonnement?

    Je ne suis pas développeur, je fais ça occasionnellement pour dépanner ma boite... du coup je développe de façon assez... primaire.

    Par contre je n'arrive pas à comparer un wchar et un char *

    merci

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    1 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 255
    Points : 2 627
    Points
    2 627
    Par défaut
    Citation Envoyé par zobbyzobba Voir le message
    Par contre je n'arrive pas à comparer un wchar et un char *
    Normal !! Tu veux comparer de l'UTF16 (Unicode) avec de l'ANSI. Il faut convertir une des 2 chaines.
    MultiByteToWideChar
    WideCharToMultiByte

    Un petit exemple. Il faut appeler 2 fois la même fonction, la 1ere fois pour déterminer la taille, la 2e pour la conversion.

    EDIT : euh... wchar ou wchar* ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2011
    Messages : 22
    Points : 23
    Points
    23
    Par défaut
    Arf :S
    Et si on fait comme moi et qu'on converti en CString pour comparer, on se fait frapper par les vrais développeurs? aie aie aie

    Je vais quand même essayer votre méthode pour me cultiver
    Mais bon, c'est vraiment des domaines où je ne suis pas à l'aise, alors quand j'ai vu que CString ça marchait du premier coup... ^^

    Merci encore

  6. #6
    Membre à l'essai
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2011
    Messages : 22
    Points : 23
    Points
    23
    Par défaut
    Re,

    En fait, j'ai encore un problème.. Avec l'API Native wifi (ce que j'ai utilisé) on est obligé d'utiliser le ZeroConfig ce que n'est pas mon cas à 100%...

    Il faut que j'arrive à comprendre le premier lien avec le WMI...

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 083
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 083
    Points : 12 142
    Points
    12 142
    Par défaut
    ZeroConfig ????

  8. #8
    Membre à l'essai
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2011
    Messages : 22
    Points : 23
    Points
    23
    Par défaut
    Oui, en fait sous Windows on a deux manière de gérer les connexion Wifi, soit avec les utilitaires des constructeurs de chipset Wifi, soit via l'utilitaire de windows qui s'appelle le ZeroConfig (il a également un service "wzcsvc" associé).
    On choisit soit d'utiliser un utilitaire constructeur soit le ZeroConfig, on ne peut donc pas laisser le service du ZeroConfig tourner si on utilise l'utilitaire du constructeur.

    Le fait est que parfois le ZeroConfig est plus performant et pratique (GPO) que l'utilitaire du constructeur, ou inversement...

    Du coup dans mon parc, j'ai parfois le Zeroconfig utilisé, parfois non.

    Sous XP, pour utiliser l'API Native Wifi, on est obligé d'avoir le service du Zeroconfig démarré pour utiliser l'API. Par conséquent, je ne peux pas me baser sur cette API pour mon programme :'(.

    J'ai donc continuer plus bas, dans les couches des pilotes. J'ai enfin trouvé l'information que je cherchais!
    C'est en WMI, dans la classe: MSNdis_PhysicalMediumType . Le problème, c'est qu'elle n'est pas très complète, et je ne sais pas comment faire le lien avec la Classe Win32_NetworkAdapter... Je suis nul en WMI :S

    J'espère que vous me comprendrez un peu mieux avec ce post

    Merci beaucoup de votre aide encore une fois!

    Have a good day!

Discussions similaires

  1. Trouver les adresses ip d'un réseau local
    Par pottiez dans le forum C++Builder
    Réponses: 19
    Dernier message: 24/06/2010, 10h20
  2. Centos lister les interface réseau
    Par morgan47 dans le forum Linux
    Réponses: 7
    Dernier message: 24/10/2009, 21h02
  3. Trouver les classes implémentant mes interfaces
    Par nicofromChina dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 23/12/2008, 09h11
  4. OCaml, le réseau et les interfaces graphiques
    Par _SamSoft_ dans le forum Caml
    Réponses: 24
    Dernier message: 07/05/2008, 12h22
  5. Simplifier les requêtes et trouver une interface commune
    Par LordClaymore dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 24/05/2007, 16h01

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