Sebastian: Atomzeit

Ich müste mal wissen, wie ich mir die Atomzeit der Braunschweiger Atomuhr besorgen kann und diese dann in einem Array oder in einer Variable Speichern kann.

Brauche die für die Zeitberechnung...

Danke für alle die mir mit Rat und Tat bei Seite stehen können.

PS: Bräuchte den ganzen Quellcode davon dann.

  1. hi,

    Ich müste mal wissen, wie ich mir die Atomzeit der Braunschweiger Atomuhr besorgen kann und diese dann in einem Array oder in einer Variable Speichern kann.

    Zeit vom Server holen

    sub get_time{
     my $hostname = shift;
     use IO::Socket;
     my $client_sock = new IO::Socket::INET (
      PeerAddr => $hostname,
      PeerPort => 13,
      Proto    => 'tcp')|| return 0;

    my $server_time = <$client_sock>;
     $client_sock->close();
     return "$server_time";
    }

    Erwin

    --
    SELFforum - Das Tor zur Welt!
    Theoretiker: Wie kommt das Kupfer in die Leitung?
    Praktiker: Wie kommt der Strom in die Leitung?
    1. Worin wird das denn dann gespeichert???
      Muss ich das dann noch definieren oder was???
      geht das auch wenn der Skript auf fremden Srvern liegt, also ich die localtime nicht verändern darf???

      Gruß Sebastian

      1. Hallo,

        Worin wird das denn dann gespeichert???

        Im Beispiel von Erwin wohl in der Variable $server_time als String.

        Muss ich das dann noch definieren oder was???

        Mh?

        geht das auch wenn der Skript auf fremden Srvern liegt, also ich die localtime nicht verändern darf???

        Mh?

        Probier mal folgendes in der Konsole:
          telnet NTP.HEH.Uni-Oldenburg.DE 13
        bzw.
          telnet NTP.HEH.Uni-Oldenburg.DE 37

        Gruß
        Slyh

        1. Probier mal folgendes in der Konsole:
            telnet NTP.HEH.Uni-Oldenburg.DE 13
          bzw.
            telnet NTP.HEH.Uni-Oldenburg.DE 37

          Ich hab nur leider keine Konsole, sondern nur nen FTP zugang.
          Gruß Sebastian

          1. Hallo,

            Ich hab nur leider keine Konsole, sondern nur nen FTP zugang.

            Aber der Rechner, an dem du sitzt, der hat doch schon eine Konsole, oder?
            (Hint: In Windows heißt das Ding "Eingabeaufforderung".)

            Ich wollte dir damit auch nur zeigen, was der Server an dich zurück-
            schickt, wenn du dich mit ihm auf Port 13 bzw. 37 verbindest. Dann
            verstehst du das Programm von Erwin vielleicht besser.

            Per Programm kannst dich auch mit dem Server verbinden. Genau das
            macht Erwin's Code-Schnipsel. Es speichert dann die Rückgabe, die
            du bei telnet auf der Konsole siehst, einfach in die Variable $server_time.
            Davon ausgehend kannst du dir dann die Zeit zusammenbasteln (bzw. die
            einzelnen Zeit-Eigenschaften -- z.B. Minute, Sekunde, ... -- in ein
            Array schreiben.

            Gruß
            Slyh

            1. Jo danke, dann nehem ich Erwin's Code-Schnipsel und benutze den.

              Danke noch mal

    2. Hallo,

      der so zurückgelieferte ASCII-String ist aber laut RFC 867
      (http://www.faqs.org/rfcs/rfc867.html) nicht standardisiert.
      Es kann also durchaus vom Server abhängen, in welchem Format die Zeit
      geliefert wird.

      Port 37 ist da vielleicht die bessere Alternative:
      http://www.faqs.org/rfcs/rfc868.html
      Das sind dann die Sekunden seit dem 1.1.1900 GMT. Daraus kann man sich
      dann die passende Zeit basteln. Die meisten Programmiersprachen bieten
      ja eine Funktion, die (Milli-)Sekunden seit dem 1.1.1900 erwartet und
      daraus eine passende Rückgabe bastelt.

      (Außerdem ist diese Methode natürlich etwas unpräzise, weil die
      Übertragungszeit vom Server zum Client noch dazu kommt. Aber da die
      Zeit ohnehin nur sekundengenau ist, dürfte das für die allermeisten
      Fälle irrelevant sein. Ansonsten halt doch NTP verwenden. :-))

      Gruß
      Slyh

      1. Ich brauche doch nur nen Skript der mir Die Tage Sekunden Minuten und das datum hintereinander in Einem Arry speichert und die ich danach benutzen kann. Sollte von der braunschweiger Atomuhr kommen.
        Gruß
        Sebastian

        1. Hallo,

          Ich brauche doch nur nen Skript der mir Die Tage Sekunden Minuten und das datum hintereinander in Einem Arry speichert und die ich danach benutzen kann. Sollte von der braunschweiger Atomuhr kommen.

          Wieso schreibst du das nicht selber? Die relevanten Code-Schnipsel hast
          du von Erwin doch schon gekriegt. Dieses Forum hier heißt SelfHTML, mit
          Betonung auf "Self". Wenn du lieber "Get" haben willst, dann nimm
          Google. Es sollte solche Skripte/Code-Schnipsel durchaus frei im Netz
          geben...

          Wenn du Erwin's Code nicht verstehst, dann frag konkret nach. Man kann
          ihn dir durchaus erklären.

          (Die NTP-Server sollten synchron mit der Atomuhr laufen. Hoffe ich.
          In meinem Beispiel war das der NTP-Server der Uni Oldenburg.
          NTP = Network Time Protocol)

          Gruß
          Slyh

          1. Ich also der Quellcode von Erwin funzt dann beser mit dem Port ...
            Dann versuch ich das mal

            Danke

            1. Hallo,

              Ich also der Quellcode von Erwin funzt dann beser mit dem Port ...

              BTW: es gibt bereits ein Modul names Net::Time, zu finden auf jedem CPAN-Server und wahrscheinlich auch auf den meisten Rechnern, auf denen Perl installiert ist.

              Grüße
                Klaus