Faire un ping en php

Fermé
chico95 - Modifié par chico95 le 11/05/2010 à 17:43
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 19 mai 2010 à 18:03
Salut a tous,

J'ai besoin de voir si un serveur est UP ou DOWN, pour cela, je dois faire un ping de ma machine a distance.

Le problème c'est que que j'essaye de me ping moi-même ou de ping un site internet qui marche, tout fonctionne parfaitement, mais quand je ping une autr emachine connecté au reseau, sa bug !

Voila le message :

Warning: fsockopen() [function.fsockopen]: unable to connect to 10.19.2.52:80 (Une tentative de connexion a échoué car le parti connecté n'a pas répondu convenablement au-delà d'une certaine durée ou une connexion établie a échoué car l'hôte de connexion n'a pas répondu. )(10060)


Et puis voila mon code, il est tout simple !

$fp = fsockopen("10.19.2.51", 80, $errno, $errstr, 10);     
   if (!$fp)    
   {   
    echo "$errstr ($errno)<br />\n"; echo '<img src="down.png" alt="serveur down" />';   
   }    
   else    
   {   
    echo '<img src="up.png" alt="serveur up" />';   
   }   
   fclose($fp);  
    
   echo '<hr/>';     
     
   $fp = fsockopen("10.19.2.52", 80, $errno, $errstr, 10);   
   if (!$fp)    
   {   
    echo "$errstr ($errno)<br />\n"; echo '<img src="down.png" alt="serveur down" />';   
   }    
   else    
   {   
    echo '<img src="up.png" alt="serveur up" />';   
   }   
   fclose($fp);


Le premier étant mon adresse IP, le ping renvoi la bonne image.
Le deuxieme étant une autre machine, le ping renvoi l'erreur !

Merci

EDIT : Je viens de penser a un truc, est-ce l'erreur de ping pourrait venir du fait que je teste en local et non sur un serveur ?
A voir également:

5 réponses

Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
11 mai 2010 à 18:10
Voici un p'tit script d'exemple qui devrait t'intéresser (j'te laisse l'adapter à tes besoins ;) ) :
<?php
$sAdresse[] = "www.google.fr";
$sAdresse[] = "www.google_wrong_ndd.fr";
foreach($sAdresse as $sAdresse){
    $aResult = Array();
    exec("ping ".$sAdresse, $aResult);
    echo "<pre>".print_r($aResult, true)."</pre>";
}
?>
0
merci pour la réponse, Si je comprends bien, sa envoi la commande "ping (adresse ip)" et sa stock les données dans un tableau ?

Mais comment voir si on a une réponse pour ensuite afficher une image?

En comparant le nombre de paquets envoyés et de paquets reçues ? En utilisant le nombre de paquets perdus ?

Merci
0
adns Messages postés 1094 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 27 mars 2012 153
12 mai 2010 à 11:54
bonjour,

juste une esquisse d'idée

tu fais ton test en local avec quels types de machine ?
pc ? serveur ?

car selon le type de machine le port 80 n'est pas forcement et ouvert et ton ping plante...

Adns
0
Je travail en local sur un PC...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
19 mai 2010 à 18:03
https://www.php.net/manual/fr/function.exec.php : <i>Exécute un programme externe</i>

Après comme j'ai fait exprès dans l'exemple, tu vois bien que le nombre de résultat est différents et que le message retourné aussi, y a plus qu'à s'axer sur ça pour faire ce que tu veux comme afficher une image, du texte etc...
0