Les Allergies
Alimentaires
Posez votre question Signaler

Faire un ping en php

chico95 - Dernière réponse le 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 ?
Lire la suite 

Faire un ping en php »

5 réponses
Réponse
+0
moins plus
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>";
}
?>
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
Je travail en local sur un PC...
Ajouter un commentaire
Réponse
+0
moins plus
http://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...
Ajouter un commentaire
Ce document intitulé « faire un ping en php » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?