Rechercher : dans
Par :

[C++] liste des interfaces réseaux

Dernière réponse le 25 déc 2008 à 20:25:55 arawns, le 24 déc 2008 à 16:02:02 
 Signaler ce message aux modérateurs

Bonjour,

Je souhaites lister les interfaces réseau sur mon poste en winxp.
Avec la commande "netsh interface show interface", j'ai une ligne, mais je ne sais ni envoyer cette commande dans un buffer char* ou string, ni comment ressortir seulement les informations qui m'intéresse.

Pouvez-vous me donner des pistes, des idées ? Merci par avance.
Résolu ? Marquez-le !

Configuration: Windows XP
Firefox 3.1

Meilleures réponses pour « [C++] liste des interfaces réseaux » dans :
Redémarrer l'interface réseau en ligne de commande Voir Dans le cas d'une mise en place d'un réseau, notamment pour vérifier qu'un serveur DHCP attribue correctement les adresses IP, il peut être plus rapide de redémarrer l'interface réseau en ligne de commande plutôt que par l'interface graphique. Ces...
[Vista] Gérer les réseaux sans fil VoirIntroduction Gérer les réseaux sans fil Supprimer un réseau sans fil Renommer un réseau sans fil Modifier l'ordre d'un réseau Modifier les propriétés d'un réseau Ajouter/Créer un réseau sans fil Se connecter/déconnecter à/d'un réseau...
[MS-Dos] Lister le contenu d'un répertoire dans un fichier VoirIl peut s'avérer pratique d'effectuer le listage d'un ou plusieurs répertoires dans un fichier, afin de tenir par exemple un catalogue de fichiers. Sous MS-Dos (ou sous Windows en ouvrant une fenêtre d'invite de commande MS-Dos) il est possible...
Configuration d'un serveur d'un réseau TCP/IP sous Linux VoirIntroduction Dans cette partie , nous allons décrire toutes les étapes nécessaires pour configurer votre réseau TCP/IP sur votre serveur. Tout d'abord, nous verrons les types d'adressage IP, ensuite, nous configurerons vos interfaces réseaux et...
Langage C - Les listes chaînées VoirLa notion de structure autoréferrentielle Une structure autoréferrentielle (parfois appelée structure récursive) correspond à une structure dont au moins un des champs contient un pointeur vers une structure de même type. De cette façon on crée...
Equipements réseau - Routeur VoirRouteur Un routeur est un équipement d'interconnexion de réseaux informatiques permettant d'assurer le routage des paquets entre deux réseaux ou plus afin de déterminer le chemin qu'un paquet de données va emprunter. Lorsqu'un utilisateur...

1

scriptiz, le 24 déc 2008 à 16:48:49

Bonjour bonjour,

WinPcap: The Windows Packet Capture Library
http://www.winpcap.org/

Et sinon va voir du coté de MSDN :
http://msdn.microsoft.com/fr-fr/library/default.aspx

Répondre à scriptiz

2

arawns, le 25 déc 2008 à 19:37:40

Bonjour,

Merci beaucoup pour cette réponse, même si je l'a trouve surprenante au vue de ma demande.
Je me permets de reformuler.

1°) Je souhaite lancer la commande sdt::system() et à la place de recevoir le résultat de la commande (réussi ou erreur), je souhaite buffuriser ce que cette commande renvoie.
Par exemple, si je lance un ping, je ne veux pas que system() me renvoie "0" car tout s'est bien passé, mais "ping 127.0.0.1, blah blah..."

2°) Sur ce principe, mon but est de lancer cette commande : "netsh interface show interface".
Voici ce que le programme ce que le programme me renvoi et que je veux buffuriser (voir le petit 1 ci-dessus) :

C:\Documents and Settings\Toto>netsh interface show interface

État admin État Type Nom de l'interface
-------------------------------------------------------------------------
Activé Dédié Connexion 1394
Activé Dédié Connexion au réseau local 3
Activé Dédié Connexion au réseau local
Activé Boucle de rappel Boucle de rappel
Activé Interne Interne


Je veux taiter ce retour pour qu'il me reste dans un char* ou autre chose, que "Connexion 1394", "Connexion au réseau local" et "Connexion au réseau local 3".

Je ne pense pas que Winpcap puisse m'aider (et puis, bonjour la portabilité inter-windows), ni MSDN.

Merci par avance pour vos réponses.




Résolu ? Marquez-le !

Répondre à arawns

3

 scriptiz, le 25 déc 2008 à 20:25:55

Ok désolée je pensais que tu en avait besoin pour autre chose ^^

Voilà sinon une solution serait de transférer la sortie de la commande "netsh interface show interface" vers un bête fichier.

netsh interface show interface > interfaces.txt


Eventuellement tu peux même faire ceci ou utiliser une autre variable d'environnement afin de le stocker qlq part.
netsh interface show interface > %TEMP%\interfaces.txt


Ensuite tu ouvre ton fichier en séquentiel et tu traite ligne par ligne ça devrait te fournir le résultat attendu non?

Attention que toutes les machines ne sont pas françaises :

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\>netsh interface show interface > %TEMP%\test.
txt

C:\>type %TEMP%\test.txt

Admin State    State          Type             Interface Name
-------------------------------------------------------------------------
Enabled                       Dedicated        Wireless Network Connection
Enabled                       Dedicated        Local Area Connection
Enabled                       Internal         Internal
Enabled                       Loopback         Loopback


C:\>


Voilà perso je pense que c'est possible en C++, je n'en fait pas mais je peux te faire un exemple en C# :)

Répondre à scriptiz