kostenloser Webspace werbefrei: lima-city


Timestamp vom Zeitserver

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    senshi-network

    senshi-network hat kostenlosen Webspace.

    Hallo, ich brauche einen timestamp der von einem Zeitserver geladen wird habe aber noch nie etwas mit Timserver gemacht und weiß nicht wie so ein Code aussehen muss und kenne auch keine Timserver nur time.windows.com kann einer mir ein Beispiel Script zeigen und es mir ein bissel erklären? ich brauche keinen der angeordnet ist also einfach nurein timestamp...


    Und wenn ihr ein guten timeserver kennt könnt ihr den ja auch posten :)

    DANKE!!!

    Beitrag zuletzt geändert: 18.8.2011 20:34:22 von senshi-network
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. welches os? oder willst es mit php oder sonstwie holen?
  4. Autor dieses Themas

    senshi-network

    senshi-network hat kostenlosen Webspace.

    ich möchte den den timestamp über php holen und dan mit php auf der db speichern

    Beitrag zuletzt geändert: 18.8.2011 22:29:18 von senshi-network
  5. senshi-network schrieb:
    ich möchte den den timestamp über php holen und dan mit php auf der db speichern
    ok. sollte etwas unklar sein, einfach fragen ;o)
    <?php
    // bBox/dev/lima/systoclock/ntp_clock.php
    
    date_default_timezone_set('Europe/Vienna');
    #date_default_timezone_set('UTC');
    
    $time_servers = array('nist1.datum.com',
                          'time.nist.gov',
                          'time-a.timefreq.bldrdoc.gov',
                          'utcnist.colorado.edu');
    
    // die beiden variablen müssen angepasst werden
    // für systemzeit setzen
    $date_app        = '/bin/date';
    // für die zeitformatierung
    $clock_app       = '/sbin/clock';
    
    $valid_response  = false;
    $ts_count        = sizeof($time_servers);
    
    $time_adjustment = 0;
    $msg             = '';
    
    for($i = 0; $i<$ts_count; $i++) {
      $time_server = $time_servers[$i];
      $fp = fsockopen($time_server, 37, $errno, $errstr, 30);
      if(!$fp) {
        $msg .= "$time_server error: $errstr ($errno)\n";
        $msg .= "versuche mit nächstem server...\n\n";
      } else {
        $data = NULL;
        while (!feof($fp)) {
          $data .= fgets($fp, 128);
        }
        fclose($fp);
    
        // response ist hier ... ist auch valid? (4 char string -> 32 bits)
        if(strlen($data) != 4) {
          $msg .= "antwort des NTP Server {$time_server} war ungültig.\n";
          if($i != ($ts_count - 1)) {
            $msg .= "versuche mit nächstem server...\n\n";
          } else {
            $msg .= "keine weiteren server!\n";
          }
        } else {
          $valid_response = true;
          break;
        }
      }
    }
    
    if ($valid_response) {
      // time server response ist ein string - convert to numeric
      $NTPtime = ord($data{0}) * pow(256, 3) + ord($data{1}) * pow(256, 2) + ord($data{2}) * 256 + ord($data{3});
    
      // convert the seconds to the present date & time
      // 2840140800 = Thu, 1 Jan 2060 00:00:00 UTC
      // 631152000  = Mon, 1 Jan 1990 00:00:00 UTC
      $TimeFrom1990 = $NTPtime - 2840140800;
      $TimeNow = $TimeFrom1990 + 631152000;
    
      // system time setzen
      #$TheDate = date("m/d/Y H:i:s", $TimeNow + $time_adjustment);
      $TheDate = date("Y-m-d H:i:s", $TimeNow + $time_adjustment);
      $success = exec("$date_app -s \"$TheDate\"");
      $success = strtotime($TheDate) . " [$success] - [$TheDate]";
    
      // hardware clock setzen (optional)
      #exec("$clock_app --systohc");
    
      $msg .= "<hr />die serverzeit wurde auf $success gesetzt\n";
    } else {
      $msg .= "zeit konnte nicht ermittelt werden. kein timeserver verfügbar.\n";
    }
    
    echo '<pre>' . $msg . '</pre>';
    der script geht (ursprünglich) in cli-modus und so kann natürlich die zeit auch setzen. angeworfen wird dann via cron. (die reaktionszeit von ntp-servern ist recht unterschiedlich. einfach cool warten ;o)

    Beitrag zuletzt geändert: 19.8.2011 0:09:39 von hemiolos
  6. Autor dieses Themas

    senshi-network

    senshi-network hat kostenlosen Webspace.

    staymyfriend schrieb:
    Ich hab zu Deinem Problem folgendes gefunden...

    http://opitz-online.com/article.php?id=147
    http://www.tutorials.de/php/297071-zeitabgleich-serverzeit-mit-atomzeit.html#post1532109

    Add:
    http://www.phpfreaks.com/forums/index.php?topic=257322.0




    Danke der 1.link war genau das was ich suche Danke Danke Danke ales klapt soweit brauche keine hilfe
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!