PcKULT.NET - La référence en informatique

  • Increase font size
  • Default font size
  • Decrease font size
  • default color
  • black color

PcKULT.NET - Recrute

PcKULT.NET est présentement à la recherche de passionnés d'informatique qui veulent se greffer à l'équipe de PcKULT.NET. Si l'aventure vous intéresse, veuillez communiquer avec nous.

webmaster@pckult.net


Vérifier l'état de votre serveur grâce à PHP

E-mail Imprimer PDF
terminal
Dans ce tutoriel, vous verrez comment il est possible de vérifier l'état d'un serveur grâce à PHP. L'utilisation de la commande PING nous seras dans le cas ci-dessous très utile afin d'obtenir le résultat voulu.


Étape 1

PHP n'a aucune fonction de PING intégré. Nous allons donc devoir en réalisé une! Nous voulons donc obtenir 2 informations essentiel :
   
  •     La disponibilité du domaine
  •     La vitesse de réaction
   
Le concepte est simple. Nous allons essayé de nous connecté au server grâce à un socket sur le port 80 et ainsi mesuré quel a été le délai de connection afin d'obtenir la rapidité du serveur. Afin de créer un socket, PHP offre une panopli de fonction. Dans le cas présent, nous allons utilisé la fonction fsockopen(). Selon la réponse renvoyé par la fonction, nous serons en mesure d'établir si le serveur est opérationnel ou non.
Étape 2

Tout d'abord nous allons créer une fonction prenant en paramètre le domain afin de s'y connecter. La fonction va retourner le délai de connection si la connection est un succès sinon celle-ci retournera -1. Dans le cas présent, la fonction ne présente aucune validation lors de la saisie du domaine.

Voici les étapes principales :

  • Enregistrer l'heure de départ
  • Essayer de ce connecter au domaine
  • Enregistrer l'heure de fermeture
  • Vérifier la valeur de retour
    • Si une erreur est retourné : -1
    • Si la connection a été établi : Heure de fin - heure de départ (milliseconde)

CODE :
<?php

    function pingDomain($domain){
        $starttime = microtime(true);
        $file      = fsockopen ($domain, 80, $errno, $errstr, 10);
        $stoptime  = microtime(true);
        $status    = 0;

        if (!$file) $status = -1;  // SITE NON DISPONIBLE
        else {
            fclose($file);
            $status = ($stoptime - $starttime) * 1000;
            $status = floor($status);
        }
        return $status;
    }
?>


Voici maintenant un exemple d'utilisation du script ci-dessus.


EXEMPLE :
<?php
// FONCTION DE VÉRIFICATION DE DISPONIBILITÉ
function pingDomain($domain){
    $starttime = microtime(true);
    $file      = fsockopen ($domain, 80, $errno, $errstr, 10);
    $stoptime  = microtime(true);
    $status    = 0;

    if (!$file) $status = -1;  // SITE NON DISPONIBLE
    else {
        fclose($file);
        $status = ($stoptime - $starttime) * 1000;
        $status = floor($status);
    }
    return $status;
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html>
<body>
      <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="domain">
        Domain name:
        <table>
          <tr><td><input name="domainname" type="text" ></td></tr>
          <tr><td><input type="submit" name="Tester" value="PING"></td></tr>
        </table> 
      </form>
     
    <?php   
        // Vérifier les données envoyés
        if (isset($_POST['Tester'])){
            $domainbase = (isset($_POST['domainname'])) ? $_POST['domainname'] : '';
            $domainbase = str_replace("http://","",strtolower($domainbase));
           
            echo '<table>';

            $status = pingDomain($domainbase);
            if ($status != -1) echo "<tr><td>http://$domainbase est disponible ($status ms)</td><tr>";
            else               echo "<tr><td>http://$domainbase est disponible</td><tr>";

             echo '</table>';
        }
    ?>
</body>



Ajouter cette page à votre Digg-Like préféré
Reddit! Del.icio.us! JoomlaVote! Google! Live! Facebook! Technorati! StumbleUpon! Spurl! Furl! Blogmarks! Yahoo! FeedMeLinks!
Commentaires (0)Add Comment

Ecrivez un commentaire
quote
bold
italicize
underline
strike
url
image
quote
quote
smile
wink
laugh
grin
angry
sad
shocked
cool
tongue
kiss
cry
Réduire l'éditeur | Agrandir l'éditeur

busy
Mis à jour ( Lundi, 17 Mars 2008 14:51 )  

Sondage

Votre fournisseur Internet
 

Publicités