Bonjour.
Est-il possible en C++ de connaître le statut d'une carte réseau, à savoir si elle est connectée ou déconnectée ?
Je vous remercie.
Version imprimable
Bonjour.
Est-il possible en C++ de connaître le statut d'une carte réseau, à savoir si elle est connectée ou déconnectée ?
Je vous remercie.
Oui c'est possible après je pense qu'il faut regarder l'API de ton OS cible.
Pour les linux, je pense que tu peux regarder les sources de ifconfig par exemple.
Comment faire, en C++ sous Windows, pour détecter si la carte réseau est branchée (statut active) ou débranchée (statut inactive) ?
Une recherche sur google ne donne rien ?
http://msdn.microsoft.com/fr-fr/libr.../hh465168.aspx
En fait, ma question exacte est :
Comment détecter la présence du réseau en fonction du nom de la carte et de son type (en particulier le type Dial-up) ?
En gros, tu veux savoir la même chose que quand Windows dit "un câble réseau est débranché"?
Oui.
Sur l'ordinateur à tester, il y a quatre cartes réseaux différentes : deux de types LAN et deux de type Dial-up.
Lorsqu'une carte de type Dial-up est connectée ou déconnectée (activée ou désactivée), est-il possible en c++ de récupérer cette information et d'afficher un message du genre "le câble réseau de la carte **nom de la carte** est débranché" ?
Oui, il y a plusieurs manières de faire :
- Tout d'abord demander poliment à ton OS (mais là, cela dépend de l'OS et comme tu ne nous dit rien à ce sujet, dur de t'aider)
- Ensuite, il y a SNMP (si un agent SNMP est installé sur ta machine, tu peux le requêter même en C++)
- Sous Windows, il y a aussi WMI qui doit pouvoir te donner des infos
Merci pour la réponse.
L'OS en question est Windows XP Embedded.
Le protocole SNMP sert à administrer un réseau. Comment peut-il permettre de récupérer une information comme l'état actif ou inactif d'une carte réseau Dial-up ?
Concernant le système WMI, il permet de contrôler les ressources système mais je ne vois pas d'informations réseaux.
Merci pour ces éclaircissements.
Je pense que je vais utiliser WMI, car je suis sous windows.
Apparemment il faut utiliser le langage WQL pour interroger WMI.
Mais où faut-il écrire les requêtes WQL ?
Salut,
Il faut passer par l'interface COM de WMI
une fois fait, il faut interroger la classe Win32_NetworkAdapter du namespace root\cimv2
edit:
COM API for WMI
Creating a WMI Application Using C++
Win32_NetworkAdapter class
Avec la classe Win32_NetworkAdapter je n'ai accès qu'aux cartes réseaux.
La classe Win32_NetworkAdapter ne donne pas d'informations sur les connexions de type Dial-Up (ce n'est pas une carte réseau, mais un Remote Access Service).
Quelle classe dois-je alors utiliser pour accéder aux informations des connexions RAS (Remote Access Service) qui ne sont pas des cartes réseaux et qui sont de type Dial-up ?
Remote Access Service Functions ?
Je pense que la première fonction que tu devrais tester est RasEnumConnections() afin de voir si tu retrouves tes petits
RasEnumConnections() ne détecte que les connexions actives.
Cependant, la connexion dial-up que je veux détecter est inactive.Citation:
RasEnumConnections cannot enumerate a connection as Active until RAS has successfully connected.
Comment faire pour la détecter même si elle est inactive ?
regarde si ceci peut t'aider... -> http://www.windowsdevcenter.com/pub/...alup_0600.html