Ping d'une IP en PHP

Signaler
Messages postés
2
Date d'inscription
mercredi 13 décembre 2000
Statut
Membre
Dernière intervention
9 juillet 2008
-
Messages postés
1
Date d'inscription
vendredi 5 octobre 2007
Statut
Membre
Dernière intervention
8 juin 2011
-
Bonjour à tous, actuellement en train de développer une petite appli en php durant un stage en entreprise, j'aurais besoin de votre aide.
Je m'explique : Je souhaite faire un ping sur des "serveurs" de l'entreprise, et j'ai pour l'instant ce petit bout de code :
_______________________________________________________________________________________
     <?php
     echo (" Pingage :
");
     $ip=""; /* l'adresse que l'on veut pinguer*/
     $port=""; /* le port que l'on veut tester (ou rien si vous voulez juste pinguer..)*/

     /*test ping*/
     $ping_check=exec ('/bin/ping -c2 -q -w2 '.$ip.' | grep transmitted | cut -f3 -d"," | cut -f1 -d"," | cut -f1 -d"%"');
     if ($ping_check==0)
     echo ("Le boitier $ip marche

");
     if ($ping_check==1)
     echo (" Le boitier $ip ne MARCHE PAS

");

     /*Test port, inutile, si on ne met pas de port dans la variable $port*/
     if ($port && $ping_check==0)
     {
     echo (" Testing port...
");
     $portcheck=exec('/usr/bin/nmap -p '.$port.' --host_timeout=2500 '.$ip.'| grep '.$port.'/tcp | cut -f1 -d"/"');
     if ($portcheck!="")
     echo ( "le port $port est ouvert sur $ip");
     else
     echo ( "le port $port est fermé sur $ip");
     }
     ?>

_____________________________________________________________________________________

Le probleme est qu'il m'affiche que tous les serveurs marchent, alors qu'avec cmd et la fonction ping +adresse, je n'ai aucune réponse.
En ce qui concerne le port, je n'ai pas besoin d'aide pour l'instant

Pourriez vous m'aider s'il vous plait ?
Merci d'avance à tous

Cordialement

Naeryan

4 réponses

Messages postés
2
Date d'inscription
mercredi 13 décembre 2000
Statut
Membre
Dernière intervention
9 juillet 2008

J'ai oublié de signaler que le bout de code vient d'ici :
http://www.phpcs.com/code.aspx?ID=20377
Messages postés
2
Date d'inscription
vendredi 13 août 2010
Statut
Membre
Dernière intervention
14 août 2010

Thanks for your codings..I recently found the one site called http://www.whoisxy.com/ping.aspx .This site provides the ping test at free of cost.
Through this we can know the connection is active or not.
Messages postés
1
Date d'inscription
mercredi 25 mai 2011
Statut
Membre
Dernière intervention
25 mai 2011

slt,actuellement en train de développer un petit interface en php durant un stage en entreprise, j'aurais besoin de votre aide.
Je souhaite faire un ping sur un routeur ,cette interface contient les champs suivant:
-Adress IP/Hôte cible(type='text')
-taille de paquets en octets(type='text')
-paquet sans interruption (type='checkbox')
-paquet sans fragmentation (type='checkbox')
j'ai réussite a faire les 2 premier champs mais c pas le cas pour les 2 dernier champs.
voila mon code et merci:
<?php
error_reporting(E_ALL ^ E_NOTICE);

$pingFile = "resultat.ping"; // fichier temporaire utilisé

// HTML...
?>

<html>
<head>
<title>php ping version 0.1 </title>
<meta name="generator" content="Namo WebEditor v4.0">
<?php
// -- Retour au php --

// Page d'acceuil - Formulaire du ping
if(!isset($_GET['pingto']))
{
echo "<FORM NAME='PINGform' ACTION='$PHP_SELF' METHOD='GET'>
Adress IP/Hôte cible,
,

----

taille de paquets en octets,
,

----

paquet sans interruption,
,

----

paquet sans fragmentation,





</form>";
}
else
// Page du résultat
{
$pingto= $_GET['pingto'];
$resultPing = PHPing($pingto, $pingFile);
//echo $pingFile;
$resultPing = str_replace('“','ô',$resultPing);
$resultPing = str_replace('ÿ','',$resultPing);
$resultPing = str_replace('‚e','ée',$resultPing);
$resultPing = str_replace('ˆ','è',$resultPing);
$resultPing = str_replace('‡','ç',$resultPing);
$resultPing = str_replace('‚','é',$resultPing);

echo "Résultat du Ping


<textarea name='formResult' rows='10' cols='70'
style='color:black; background-color:white;'>$resultPing</textarea>

Retour";
}
// Retour au HTML
?>




</html>

<?php
//*************************************
// FONCTION DU PING
//*************************************
function PHPing($cible,$pingFile){
exec("ping -a -n 1 $cible >$pingFile", $list);
$fd = fopen($pingFile, "r");
while(!feof($fd))
{
$ping.= fgets($fd,256);
}
fclose($fd);
return $ping;
}
//-------------------------------------
?>
</center>
Messages postés
1
Date d'inscription
vendredi 5 octobre 2007
Statut
Membre
Dernière intervention
8 juin 2011

Salut, J'ai fais un peu le ménage dans ton code (dont je te remercie, je cherchais justement à faire ce test). Je te déconseille d'utiliser ton flag SansInterrruption question de ne pas faire boucler ton programme:
<?php
error_reporting(E_ALL ^ E_NOTICE);

$pingFile = "resultat.ping"; // fichier temporaire utilisé

//*************************************
// FONCTION DU PING
//*************************************
function PHPing($cible, $bufferSize, $dontfragFlag, $pingFile)
{
$param = "";
if ($bufferSize<>"") {$param.=" -l $bufferSize";}
if ($dontfragFlag<>"") {$param.=" -f";}

$pingRequest = "ping -a -n 1 $param $cible >$pingFile";
// echo $pingRequest; exit; // Just for debug

exec($pingRequest, $list);
$fd = fopen($pingFile, "r");
while(!feof($fd))
{
$ping.= fgets($fd, 256);
}
fclose($fd);
return $ping;
}


?>

<html>
<head>
<title>php ping version 1.0 </title>
<meta name="generator" content="Namo WebEditor v4.0">
<?php
// -- Retour au php --

// Page d'acceuil - Formulaire du ping
if(!isset($_GET['Submit']))
{
?>
<form name="PINGform" action="<?php echo $_SERVER['PHP_SELF'] ?>" method='GET'>

Adress IP/Hôte cible,
,

----

Taille de paquets en octets,
,

----

Paquet sans interruption,
,

----

Paquet sans fragmentation,






</form>
<?php
}
else
// Page du résultat
{
$pingto = $_GET['pingName'];
$pingsize = $_GET['pingSize'];
$fragFlag = $_GET['fragFlag'];

$resultPing = PHPing($pingto, $pingsize, $fragFlag, $pingFile);

//echo $pingFile;
$resultPing = str_replace('“','ô',$resultPing);
$resultPing = str_replace('ÿ','',$resultPing);
$resultPing = str_replace('‚e','ée',$resultPing);
$resultPing = str_replace('ˆ','è',$resultPing);
$resultPing = str_replace('‡','ç',$resultPing);
$resultPing = str_replace('‚','é',$resultPing);
?>
Résultat du Ping


<textarea name='formResult' rows='10' cols='70'
style='color:black; background-color:white;'><?php echo $resultPing ?></textarea>


Retour
<?php
}
?>


</html>