comment recuperer le resultat d'une comande dos??

  • Auteur de la discussion trunks_tr
  • Date de début

trunks_tr

Nouveau membre
salut tout le monde
ben mon objectif c'est de pouvoir recuperer le resultat d'une commande dos (exemple: ping, arp -a...) et d'extraire une partie de ce resultat que je l'ai fais rediriger vers un fichier texte et de mettre cette partie dans une valeure dont j'en aurrai besoin pour la comparer avec une autre valeur que je compte la recuperer a partir d'une base de donnees.
ben voici le bout de code que je viens de tapper :

import java.io.*;
public class DosQuery {
public static void main(String[] args) {

String cmd;
cmd = "cmd /c ping localhost > trunks.txt ";

try {
Runtime r = Runtime.getRuntime();
Process p = r.exec(cmd);

InputStream i_stream = p.getInputStream();
InputStreamReader reader = new InputStreamReader(i_stream);

InputStream out = new BufferedInputStream(p.getInputStream());

String s =null;

BufferedReader bf_reader= new BufferedReader(reader);
while ((s = bf_reader.readLine()) != null) {
byte[] b = new byte[1024];
int n = out.read(b);
for(int i=0; i<n; i++)
System.out.print((char)b);
}

p.waitFor();//si l'application doit attendre a ce que ce process fini

}catch(Exception e) {
System.out.println("erreur d'execution " + cmd + e.getMessage());
}
}
}

ce qu'il reste a faire alors c'est d'extraire une partie du resultat de ping qui a ete redirige vers le fichier "trunks.txt" et la mettre dans une variable.
j'espere que ma demande est bien claire .
Si vous avez une idee n'hesitez pas a m'aider.
Merci :)
 

trunks_tr

Nouveau membre
merci pour votre reponses
j'ai pas bien compris votre question, comme vous voyez la je redirectionne le resultat de ping vers un fichier,et mon but c'est de rentrer dans ce fichier et enregistrer un bout de ligne dans une variable :(
j'espere que c'est claire
merci
 

KangOl

Grand Maître
non pas trop

si tu ne redirige pas vers un fichier, tu récuperera la résultat dans ton flux java
ensuite a toi de le lire correctement et d'en tirer les infos utile

par contre, cela m'etonnerai qu'il n'exite pas déja un librairie pour géré le ping ...
 

trunks_tr

Nouveau membre
slt,voici le nouveau code,on vient de me le corriger:
import java.io.*;
public class Arp {
public static void main(String[] args) {

String cmd = "cmd /c arp -a > krl.txt";

try {
Runtime r = Runtime.getRuntime();
Process p = r.exec(cmd);

String s =null;

BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));

StringBuffer buffer = new StringBuffer();

while ((s = reader.readLine()) != null) {
buffer.append(s);
}

String result = buffer.toString();
//System.out.println(result);
}catch(Exception e) {
System.out.println("erreur d'execution " + cmd + e.getMessage());
}
}}

le resultat obtenu est le suivant :

Interfaceÿ: 0.0.0.0 --- 0x2
Adresse Internet Adresse physique Type
157.55.85.12 f0-aa-00-62-c6-09 statique
157.55.85.212 00-aa-00-62-c6-09 statique

ce que je veux faire c'est stocker une adresse physique par exemple celle de la premiere ligne dans une variable
est ce qu'il n'y pas en java une methode comme : goto xy(2,3) par exemple???
si vous avez une idee n'hesiter pas a m'aider
merci
 

Maryem ghl

Nouveau membre
Bonjour je me demande Mr trunk_tr quel est le dernier programme que vous avez obtenez et qui est fonctionnel.Merci d'avance
 

Storos

Modérateur cochon
Staff


Le message ayant été posté il y a près de 7 ans, la probabilité d'obtenir une réponse est quand même assez faible... :D
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 135
Messages
6 718 099
Membres
1 586 397
Dernier membre
Chachabidou
Partager cette page
Haut