PHP et le fsockopen


Voici le code permettant à PHP de sonder un port TCP sur un périphérique.
Avec affichage d'une icone selon l'état du port en question.

  // Test d'ouverture du port sur la Machine pendant 3 secondes
        $host='10.170.45.56';
        $port='80'
        $socket = 0;
        $socket = @fsockopen($host, $port, $errno, $errstr, 3);
        // Si OK...
        if($socket && !$errno) {
  echo '<img src="./modules/byod/apltv-ok.png">&nbsp';
  } else {
  echo '<img src="./modules/byod/apltv-no.png">&nbsp';
 
        }

Voici la façon a mettre en place pour un port UDP sur un périphérique:

   $socket = fsockopen("udp://".$host, $port, $errno, $errstr, 3);
  1. Possibilité de changer le nombre de tentative de 3 à 1.
  2. Possibilité de changer l'état de l'icone par un simple texte ou les deux .
echo '<span style="color: green"><strong><font face="verdana">© SQUID is UP</font></strong></span>';

La commande fsockopen et bien plus rapide que de passé par une commande Ping:

exec('ping -c &" . $host, $output, $result);
  if ($result == 0)
  echo'';
  else
  echo'';