Page 1 sur 1
Script php nslookup
Posté : 28 oct. 2005, 10:23
par websat
Salut
J'ai un script qui fonctionne sous dos avec la commande: nslookup qrc29-1.dslg.proxad.net comment transferer cette commande pour afficher le resultat dans une page php ?
Merci
Posté : 28 oct. 2005, 11:34
par zeus
Est-ce que la fonction
exec pourrait te convenir ?
Lit bien tout sur les valeurs de retour

Posté : 03 nov. 2005, 13:40
par Invité
La fonction exec me convient, mais comment faire apres ?
merci
Posté : 03 nov. 2005, 14:06
par sadeq
L'idée est de créer un batch qui exécute la commande nslookup et renvoi le résultat dans un fichier log :
que je nomme par exemple nslook.bat pour ne pas le confondre avec la commande nslookup (le nom du batch ne doit pas être nslookup pour éviter la récurcivité).
Ensuite dans ton programme PHP lance le batch et affiche le fichier log porteur du résultat:
<?
exec("nslook.bat qrc29-1.dslg.proxad.net");
?>
<iframe src="nslookup.log" width="100%" height="100%"></iframe>
où nslook.bat est le nom de ton batch et nslookup.log est le fichier log créé par le batch
Posté : 03 nov. 2005, 14:13
par zeus
Comme ce que je t'ai dit, il faut lire la partie sur la variable output
Tu executes ta fonction avec exec et tu récupères le résultat de cette exécution dans la variable output
Il ne te reste ensuite plus qu'a afficher ta variable dans ta page PHP
Posté : 03 nov. 2005, 14:21
par sadeq
exact,
zeus +1
Exemple :
<?
exec("nslookup qrc29-1.dslg.proxad.net",$array_out);
echo "<h3>Réponse nslookup qrc29-1.dslg.proxad.net</h3>";
if ($array_out != null)
foreach ($array_out as $out) echo "<p>$out";
else echo "<p>Rien";
?>
Posté : 03 nov. 2005, 19:07
par Invité
Merci beaucoup, ca marche, j'ai utilisé ton script sadeq, par contre ca affiche ca:
Réponse nslookup 213.228.37.195
Serveur : bewan
Address: 192.168.0.1
Nom : qrc29-1.dslg.proxad.net
Address: 213.228.37.195
comment ne pas afficher ca: Serveur : bewan
Address: 192.168.0.1 (c'est mon routeur)
Posté : 03 nov. 2005, 21:30
par websat
J'ai un autre petit probleme, j'ai ca:
Code : Tout sélectionner
<?
exec("nslookup 213.228.37.132",$array_out);
echo "<u>Nslookup BRC29-1 - Brest Centre:</u>";
if ($array_out != null)
foreach ($array_out as $out) echo "<p>$out";
else echo "<p>Rien";
exec("nslookup 213.228.37.130",$array_out);
echo "<u>Nslookup BRE29-1 - Brest Est:</u>";
if ($array_out != null)
foreach ($array_out as $out) echo "<p>$out";
else echo "<p>Rien";
?>
Ca marche mais ca affiche:
Code : Tout sélectionner
Nslookup BRC29-1 - Brest Centre:
Serveur : bewan
Address: 192.168.0.1
Nom : brc29-1.dslg.proxad.net
Address: 213.228.37.132
Nslookup BRE29-1 - Brest Est:
Serveur : bewan
Address: 192.168.0.1
Nom : brc29-1.dslg.proxad.net
Address: 213.228.37.132
Serveur : bewan
Address: 192.168.0.1
Nom : bre29-1.dslg.proxad.net
Address: 213.228.37.130
ca affiche Serveur : bewan
Address: 192.168.0.1
Nom : brc29-1.dslg.proxad.net
Address: 213.228.37.132 en trop, pourquoi ????
Posté : 04 nov. 2005, 09:42
par sadeq
Explication:
Il y a repétition de l'ip : 213.228.37.132 car le tableau $array_out n'est pas vidé avant de lancer le second nslookup.
Pour corriger, ajoute le code : $array_out = null; avant de lancer le second exec.
Posté : 04 nov. 2005, 09:57
par websat
merci, ca marche...