Bonjour,

Voila je rencontre un petit problème avec mon code.

<?php
$hs = false;

$hosts = ["192.168.0.4","192.168.0.49"];

foreach ($hosts as $host)
echo "<table border=\"0\" align=\"center\">";
{
$ping = exec("ping -n 2 $host");
if ( strcmp("ms", substr($ping, -2)) == 0)
{
echo "<td width=60><a href='/test01.php'><img src=/vert.gif></a></td>";
}
else
{
echo "<td width=60><a href='/test02.php'><img src=/rougeclignote.gif></a></td>";
$hs = true;
}
}
?>

J'aimerais pinguer plusieurs serveurs et n'avoir qu'une seule et unique reponse.
C'est à dire, quand tous les serveurs sont OK il utilise "vert.gif" dés que un seul des serveurs ne ping pas il utilise "rougeclignote.gif".
Avec 1 serveur cela fonctionne mais dés que j'en met plusieurs il ne me prend en compte la derniere adresse de la liste.

Merci de votre aide.

6 réponses


En faite j'ai besoin de TOUS les resultats mais en un seul resultat. Si tous les serveurs sont OK il me dit OK, si un seul serveur est HS il me dit HS, même si il ya 1 serveur HS sur 150.
Merci d'avance

Ton code me donne l'état des serveurs un par un, ainsi que OK même si le serveur est KO.
J'aimerais avoir une réponse unique pour l'ensemble des serveurs.
Exemple:

  • Si TOUS les serveurs sont OK il affiche juste OK.
  • Si même 1 des 50 serveurs est HS il affiche HS.

Si quelqu'un peux avoir une solution a mon probléme.
Merci d'avance

Merci de ta réponse.
Maintenant il me donne :

Warning: Use of undefined constant hs - assumed 'hs' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\test.php on line 11
KO

la ligne 11 est : echo hs ? "KO" : "OK"

Alors j'ai un mieux..
Maintenant il me donne les OK et s'arrete au prochain HS.
Le probléme c'est que je veux juste une seule et unique réponse.
Dés qu'il arrive à un serveur HS, il ne me donne pas les réponse OK, juste la réponse KO.
Et si TOUT est OK il me dis juste OK.

<?php
$hs = false;
$hosts = ["192.168.0.49","192.168.0.49","192.168.0.4"];
foreach ($hosts as $host) 
{
  $ping = exec("ping -n 1 {$host}");
if ( substr($ping, -2) == 'ms') 

{
    echo "<td width=60><a href='/test02.php'><img src=/vert.gif></a></td>";
} 
 else
{
    echo "<td width=60><a href='/test02.php'><img src=/rougeclignote.gif></a></td>";
    $hs = true;
    break;
}
}

?> 

Merci d'avance

Merci Merci Merci
Tu me sauve la vie.
Cela fait depuis avril que je cherche une solution et tu me l'apporte en 2jours.
Bravo à toi et encore merci pour tout.