Advertisement
Sugisaki

NTP

Nov 6th, 2017
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.37 KB | None | 0 0
  1. <?php
  2. error_reporting(E_ALL ^ E_NOTICE);
  3. ini_set("display_errors", 1);
  4.  
  5. date_default_timezone_set("America/Caracas");
  6.  
  7. /* Query a time server (C) 1999-09-29, Ralf D. Kloth (QRQ.software) <ralf at qrq.de> */
  8. function query_time_server ($timeserver, $socket)
  9. {
  10.     $fp = fsockopen($timeserver,$socket,$err,$errstr,5);
  11.         # parameters: server, socket, error code, error text, timeout
  12.    if($fp)
  13.     {
  14.         fputs($fp, "\n");
  15.         $timevalue = fread($fp, 49);
  16.         fclose($fp); # close the connection
  17.    }
  18.     else
  19.     {
  20.         $timevalue = " ";
  21.     }
  22.  
  23.     $ret = array();
  24.     $ret[] = $timevalue;
  25.     $ret[] = $err;     # error code
  26.    $ret[] = $errstr;  # error text
  27.    return($ret);
  28. } # function query_time_server
  29.  
  30.  
  31. $timeserver = "ntp.pads.ufrj.br";
  32. $timercvd = query_time_server($timeserver, 37);
  33.  
  34. //if no error from query_time_server
  35. if(!$timercvd[1])
  36. {
  37.     $timevalue = bin2hex($timercvd[0]);
  38.     $timevalue = abs(HexDec('7fffffff') - HexDec($timevalue) - HexDec('7fffffff'));
  39.     $tmestamp = $timevalue - 2208988800; # convert to UNIX epoch time stamp
  40.    $datum = date("Y-m-d (D) H:i:s",$tmestamp - date("Z",$tmestamp)); /* incl time zone offset */
  41.     $doy = (date("z",$tmestamp)+1);
  42.  
  43.     echo date("d/m/Y H:i:s", $tmestamp);
  44. }
  45. else
  46. {
  47.     echo "Unfortunately, the time server $timeserver could not be reached at this time. ";
  48. }
  49. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement