Publié le 16/06/2010
Auteur fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Mettre a jour la date via un serveur NTP

Lorsque l'heure du serveur doit ętre exacte, la date est synchronisée régulièrement en interrogeant les serveurs de temps. Avec le langage PHP, la fonction fsockopen établit une communication NTP pour récupérer le précieux TimeStamp.

Serveur NTP (Network Time Protocol)

NTP est le protocole utilisé pour communiquer avec ces serveurs en ligne, eux-mêmes reliés à des horloges atomiques. Le format d'échange est commun au monde entier : UTC (Coordinated Universal Time).

Exemples de serveurs NTP publics:
- ntp.laas.fr (LAAS/CNRS, Toulouse),
- ntp.u-psud.fr (CRI, Université Paris Sud),
- ntp2.emn.fr (Ecole des Mines, Nantes).

La communication passe par le port 123 ou le port 37.

Script PHP d'interrogation d'un serveur de temps

A l'aide d'une requête PHP, le script ci-dessous prend en charge les fonctions suivantes:
- interroger le serveur avec les sockets sur le port 37,
- convertir la réponse en timestamp,
- Afficher l'heure et la date au format francais.

<?php
define('NTP_SERVER',"ntp2.emn.fr");
 
/**
 * Interroger le serveur ntp avec une connection socket sur le port 37
 * @return timestamp
 */
function getTimeStamp() {
    $fp = fsockopen(NTP_SERVER, 37);
    if (!$fp) {
        return 0;
    } else {
        fputs($fp,"n");
        $buf = fread($fp,49);
        fclose($fp); # close the connection
        $time = bin2hex ($buf);
        $time = abs (HexDec('7fffffff') - HexDec($time) - HexDec('7fffffff')) ;
        return $time - 2208988800;
    }
}
 
$timestamp=getTimeStamp();
/**
 * Formater la date au format UTC et francais
 */
echo 'Reponse du serveur '.NTP_SERVER.': '.$timestamp.'<br>';
echo 'Date UTC: '.date("Y-m-d (D) H:i:s",$timestamp - date("Z",$timestamp)).'<br>';
echo 'Date francaise: le '.date("d/m/Y",$timestamp).' il est exactement '.date("H:i:s",$timestamp).'<br>';
 
?>

D'une manière générale, le développeur utilise la fonction microtime() pour connaitre l'heure à partir du serveur sur lequel s’exécute le script. Si l'on veut justement synchroniser l'heure de son serveur ou utiliser des fonctions de cryptage, une communication NTP peut être intéressante.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
php5 - script
Mise a jour
16/06/2010
Visualisation
vu 2595 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 267 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Fobec dans tuto

En fait, une page index est construite de la même manière que l'exemple test.php.

Publié par dieteticien-lyon dans CMS

Il existe aussi programme-dietetique.com qui est pas mal et au niveau fonctionnalit&Atilde;&copy;

Publié par taoufik dans CMS

merci cest un bon logiciel

Publié par bapsmaitihere dans logiciel

je souhaite tester

Publié par Elvine dans java

Bonsoir, je voudrais savoir si ce code peut etre utilise avec Netbeans