Utiliser des commandes DOS

Signaler
Messages postés
22
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
25 juin 2004
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Bonjour !

Comme vous le savez, quand on tape "ipconfig /all" sous DOS, on reçoit tout un tas de paramètres de configuration de la machine.

Je voudrais récupérer l'adresse IP de la machine (et uniquement celle-ci) dans une textBox grâce aux lignes de commande suivantes :

Process compiler = new Process();
compiler.StartInfo.FileName = "ipconfig /all";
compiler.StartInfo.RedirectStandardOutput = true;
compiler.StartInfo.UseShellExecute = false;
compiler.Start();
textBox1.Text = compiler.StandardOutput.ReadToEnd().ToString();

En ce moment, je récupère dans ma textBox TOUT ce qui m'est retourné par la commande, y compris les nom des paramètres.

Y a t il une solution pour ne récupérer QUE l'IP?

Merci

4 réponses

Messages postés
22
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
25 juin 2004

Bonjour !

Lorsque je souhaite utiliser d'autres commandes que "ipconfig" dans mon programme, le compilateur me jete et m'envoie une exception pas belle :-(

Voilà mes lignes des commandes, et visiblement, il aime pas du tout le "netstat" :

Process compiler = new Process();
compiler.StartInfo.FileName = "netstat";
compiler.StartInfo.RedirectStandardOutput = true;
compiler.StartInfo.UseShellExecute = false;
compiler.Start();
richTextBox1.Text = compiler.StandardOutput.ReadToEnd().ToString();

Pourquoi donc ?

Merci
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
ben tu recherches la ligne "Adresse IP" et tu ne prend que l'IP qui est au bout de cette ligne

sinon tu peux aussi te servir desclassesWMI Win32_NetworkAdapter*

Cocoricoooooooo !!!!
Messages postés
22
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
25 juin 2004

Je suis d'accord avec toi coq...

Seulement, c'est l'objet de ma question...

Je vois comment faire, mais je ne sais pas comment m'y prendre...

...et toi, tu me dis comment faire, mais pas comment m'y prendre. ;-)
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
exemple avec la methode "ipconfig" (d'ailleurs a ce propos, ipconfig /all.exe n'existe pas, /all est un argument a specifier à part ) :

Process compiler = new Process();
compiler.StartInfo.FileName = "ipconfig";
compiler.StartInfo.Arguments = "/all";
compiler.StartInfo.RedirectStandardOutput = true;
compiler.StartInfo.UseShellExecute = false;
compiler.Start(); 
string ipconfig = compiler.StandardOutput.ReadToEnd().ToString();
int indexconnexion = ipconfig.IndexOf("Connexion au réseau local");
int indexligneadresse = ipconfig.IndexOf("Adresse IP", indexconnexion);
int indexadresse = ipconfig.IndexOf(":", indexligneadresse) + 2;
string adresse = ipconfig.Substring(indexadresse, ipconfig.IndexOf("\r\r\n", indexadresse) - indexadresse);
MessageBox.Show("Adresse = "" + adresse + """);


Cocoricoooooooo !!!!