Bonsoir à tous je cherche depuis un bon moment un moyen de testé l'état d'un serveur distant, un simple ping suffirai... mais la complexité c'est de le faire en php...

J'ai réussi à obtenir une parti de code mais le problème c'est que ca me dit toujours OK, même si le serveur n'existe pas -_-...

Pourriez vous m'aider à améliorer mon problème ou même me donné une autre solution si je suis dans la mauvaise direction ? ^^

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
<?php
echo ("Etat des serveurs <br>");
 
$serveur1="195.27.0.130";
$serveur2="www.adressebidon.com";
 
$ping=exec ('/bin/ping -c2 -q -w2 '.$serveur1.' | grep transmitted | cut -f3 -d"," | cut -f1 -d"," | cut -f1 -d"%"');
if ($ping==0)
echo ("Serveur $serveur1 OK :)<br><br>");
else
echo ("Serveur $serveur1 HS :(<br><br>");
 
$ping=exec ('/bin/ping -c2 -q -w2 '.$serveur2.' | grep transmitted | cut -f3 -d"," | cut -f1 -d"," | cut -f1 -d"%"');
if ($ping==0)
echo ("Serveur $serveur2 OK :)<br><br>");
else
echo ("Serveur $serveur2 HS :(<br><br>");
 
?>
Je vous remercie d'avance, Cordialement

Ps: j'avais aussi essayer des codes que j'ai trouver mais ça ne fonctionne pas comme je le désire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
<?php
$fp = fsockopen("195.27.0.130", 80, &$errno, &$errstr, 30);
if(!$fp)
{
 print"HS";
} else {
 print"OK";
}
?>
ou encore :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<?php
$ping = "ping -a -n 1";
$ip = "195.27.0.130";
$result = "";
 
system ($ping $ip > $result);
 
?>