über NTP die Zeit von einem Fremden Server holen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • über NTP die Zeit von einem Fremden Server holen

    Hello People!

    Gibt es eine möglichkeit in PHP die zeit eines NTP Server auszulesen? Oder muss der NTP Server auch PHP installiert haben?

    sincerely larix

  • #2
    PHP-Code:
    <?php
    function query_time_server ($timeserver$socket) {
      
    $fp fsockopen($timeserver,$socket,$err,$errstr,5);
      
    // parameters: server, socket, error code, error text, timeout
      
    if ($fp) {
        
    fputs($fp,"\n");
        
    $timevalue fread($fp,49);
        
    fclose($fp); // close the connection
      
    } else {
        
    $timevalue " ";
      }
      
    $ret = array();
      
    $ret[] = $timevalue;
      
    $ret[] = $err;     # error code
      
    $ret[] = $errstr;  # error text
      
    return($ret);
    }
    ?>
    habs nur mit php4 getestet

    DAYTIME, the daytime protocol (RFC-867).
    The time server is listening on TCP/UDP port 13 and sends an ASCII string (one line, no format defined).
    Although NIST is sending some additional information, there is no time zone or correction information here.
    TIME, the time protocol (RFC-868).
    The time server is listening on TCP/UDP port 37 and sends a 32-bit binary number (seconds since 1900-01-01 00:00.00 UTC).
    This base will serve until time stamp 4294967295, which will be on 2036-02-07 06:28.14 UTC.
    The standardized data format refers to UTC (Coordinated Universal Time), no other time zones. This protocol cannot estimate network delays or report additional information.
    Note: Time stamp on 1970-01-01 00:00.00 UTC (begin of the unix epoch) was 2208988800.
    NTP, the network time protocol V3 (RFC-1305).
    The time server is listening on UDP port 123.
    NTP is a very sophisticated protocol between NTP servers and multiple peers, using unicast and multicast addressing. NTP timestamps are represented as a 64-bit unsigned fixed-point number, in seconds since 1900-01-01 00:00.00 UTC. The integer part is in the first 32 bits and the fraction part of the second is in the last 32 bits. The maxmimum number is 4294967295 seconds with a precision of about 200 picoseconds.
    SNTP, the simple network time protocol V4 (RFC-2030).
    The time server is listening on UDP port 123.
    SNTP formats are compatible to the NTP protocol specification, using a simplified access strategy for servers and clients; the access paradigm is identical to the UDP/TIME protocol.

    RFC's
    http://www.faqs.org/rfcs/index.html
    gruss

    Kommentar


    • #3
      DANKE FÜR DAS SCRIPT! habs aber immernoch nich zum laufen gebracht!

      habe mehrer timserver ausprobiert und keiner ging bis jetzt

      PHP-Code:
      <?php
      query_time_server
      ("ntps1-1.cs.tu-berlin.de","123");

      function 
      query_time_server($timeserver$socket) {
      //$timeserver="131.188.3.220";
      //$socket="13";
        
      echo "$timeserver:$socket<br>";
        
      $fp fsockopen($timeserver,$socket,$err,$errstr,5) or die("FSOCKOPEN FAILED");
        
      // parameters: server, socket, error code, error text, timeout
        
      if ($fp) {
          
      fputs($fp,"\n");
          
      $timevalue fread($fp,49);
          
      fclose($fp); // close the connection
        
      } else {
          
      $timevalue " ";
        }
        
      $ret = array();
        
      $ret[] = $timevalue;
        
      $ret[] = $err;     # error code
        
      $ret[] = $errstr;  # error text
        
      return($ret);
      }
      ?>
      bekam immer die Fehlermeldung "FSOCKOPEN FAILED"! was mache ich den falsch? ahb ich vielleicht falsche server erwischt?




      larix

      Kommentar


      • #4
        probier mal port 13 =)

        PHP-Code:
        $array query_time_server('ntps1-1.cs.tu-berlin.de',13);
        echo 
        '<pre>';
        print_r($array);
        echo 
        '</pre>'
        output:
        Code:
        Array
        (
            [0] => Fri Sep  5 03:07:16 2003
        
            [1] => 0
            [2] => 
        )
        ptbtime1.ptb.de spuckt es uebrigens in der form aus:

        05 SEP 2003 03:07:16 METDST

        Kommentar


        • #5
          Ich hab das jetzt bei mir auch versucht, aber dieser NTP Server scheint es nicht mehr zu geben. Hast du einen der noch funktioniert?
          Und muss ich überall bei jdem diesen port 13 benutzen? oder auch andere? und wenn wo stehen die dann eigentlich?
          Mfg

          Alexander

          Kommentar

          Lädt...
          X