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 1934 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 261 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Tchat dans news

Analyses interessantes.
J'ai constate aussi des comportements etranges de Google concernant les placements des sites sur leurs requetes.
Par contre j'ai remarque que Google ne tient pl...

Publié par traitstone dans CMS

c'est bou et tres bon chose

Publié par OmegaPlatypus dans java

Dans mon cas, plusieurs lettres etaient repetes plusieurs fois, dont la derniere a l'indfiniment. En ajoutant robot.keyReleaseKeyEvent.VK_A, robot.keyReleaseKeyEvent.VK_X, etc. apres chacune des frap...

Publié par robbie dans tuto

marche pas le code le la boite de confirmation
faut-il inclure: { dans le code ou les enlever? merci d'avance pour la reponse (si possible pas par mail merci)

Publié par Outsourcing dans news

Le PageRank n'a plus une reelle importance a mon humble avis mais bcp de mes clients continue a juger de la qualite de ma prestation en referencement avec la barre verte!