Utiliser des commandes DOS

Sunnyprog Messages postés 22 Date d'inscription samedi 29 mars 2003 Statut Membre Dernière intervention 25 juin 2004 - 25 juin 2004 à 10:18
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 25 juin 2004 à 11:10
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

Sunnyprog Messages postés 22 Date d'inscription samedi 29 mars 2003 Statut Membre Dernière intervention 25 juin 2004
25 juin 2004 à 10:22
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
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
25 juin 2004 à 10:33
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 !!!!
0
Sunnyprog Messages postés 22 Date d'inscription samedi 29 mars 2003 Statut Membre Dernière intervention 25 juin 2004
25 juin 2004 à 10:52
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. ;-)
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
25 juin 2004 à 11:10
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 !!!!
0
Rejoignez-nous