netstat (filtrage ed contenu)

Répondre
er-issam
le 05/05/2008 à 11:34
er-issam
Bonjour
je demande s'il y a quelqun qui peut m'aider à filtrer le resultat d'une requette "netstat" que j'execute depuis php et qui me retourne un texte contenant des adresse ip, mask, protocole. . . et je cherche a filtrer ce resultat en format d'un tableau

voici ce qui me retourne la requette
(

Connexions actives Proto Adresse locale Adresse distante Etat TCP Ordi-Iss:telnet Ordi-Iss:0 LISTENING TCP Ordi-Iss:epmap Ordi-Iss:0 LISTENING TCP Ordi-Iss:microsoft-ds Ordi-Iss:0 LISTENING TCP Ordi-Iss:1110 Ordi-Iss:0 LISTENING TCP Ordi-Iss:2869 Ordi-Iss:0 LISTENING TCP Ordi-Iss:19780 Ordi-Iss:0 LISTENING TCP Ordi-Iss:http Ordi-Iss:0 LISTENING TCP Ordi-Iss:http localhost:1545 ESTABLISHED TCP Ordi-Iss:1028 Ordi-Iss:0 LISTENING TCP Ordi-Iss:1060 localhost:1110 CLOSE_WAIT TCP Ordi-Iss:1063 localhost:1110 CLOSE_WAIT TCP Ordi-Iss:1067 localhost:1110 CLOSE_WAIT TCP Ordi-Iss:1070 localhost:1110 CLOSE_WAIT TCP Ordi-Iss:1108 localhost:1110 CLOSE_WAIT TCP Ordi-Iss:1110 localhost:1543 ESTABLISHED TCP Ordi-Iss:1543 localhost:1110 ESTABLISHED TCP Ordi-Iss:1545 localhost:http ESTABLISHED TCP Ordi-Iss:3306 Ordi-Iss:0 LISTENING TCP Ordi-Iss:netbios-ssn Ordi-Iss:0 LISTENING TCP Ordi-Iss:1495 192.168.1.92:telnet TIME_WAIT UDP Ordi-Iss:microsoft-ds *:* UDP Ordi-Iss:isakmp *:* UDP Ordi-Iss:1037 *:* UDP Ordi-Iss:4500 *:* UDP Ordi-Iss:ntp *:* UDP Ordi-Iss:1081 *:* UDP Ordi-Iss:1900 *:* UDP Ordi-Iss:ntp *:* UDP Ordi-Iss:netbios-ns *:* UDP Ordi-Iss:netbios-dgm *:* UDP Ordi-Iss:1900 *:*

)
اللهم يسر
LA GLOBULE
le 05/05/2008 à 13:47
LA GLOBULE
Netstat retourne une info par ligne, donc en fait tu n'as qu'une ligne à parser, ce qui reste relativement simple.

Si ca se trouve, ce sont des tabulations qui séparent les champs en plus.
LA GLOBULE
le 06/05/2008 à 20:33
LA GLOBULE
Déjà arrive tu à lire le résultat de ta commande, ligne par ligne ?

Et est ce que les champs sont séparés par des tabulations ?
er-issam
le 07/05/2008 à 00:27
er-issam
oui je suis arrivé à afficher mon résultat de ma commande, ligne par ligne :)

et j'utilise la focntion "split" pour decouper chaque ligne

voici mon code :

<?php
if (!$fp = fopen("netstat.txt","r")) {
echo "Echec de l'ouverture du fichier";
exit;
}
else {
while(!feof($fp)) {
// On récupère une ligne
$Ligne = fgets($fp,255);

// On affiche la ligne
echo $Ligne.'<br>';
// je decoupe ma ligne recuperer en definnsant l'espace comme parametre de decoupe
$resultats = split(" ", $Ligne);
echo $resultats[0].'<br>'.$resultats[1].'<br>'.$resultats[2].'<br>'.$resultats[3].'<br>'.$resultats[4].'<br>';

}
fclose($fp); // On ferme le fichier
}
?>


le code me donne a l'affichage ceci :
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1456

TCP
0.0.0.0:135
0.0.0.0:0
LISTENING
1456


TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4


TCP 0.0.0.0:1110 0.0.0.0:0 LISTENING 512


TCP 0.0.0.0:19780 0.0.0.0:0 LISTENING 512


TCP 81.192.178.205:139 0.0.0.0:0 LISTENING 1500


TCP 81.192.178.205:1797 84.53.134.242:80 ESTABLISHED 512

ainsi de suite, mon probleme c'est que split me decoupe que la premiere ligne même si le tout est met dans la boucle 'while'
je comprend pas pourquoi
اللهم يسر
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours