Seite 1 von 1

NTP Zeit abfragen

Verfasst: Mo, 09. Apr 2012 15:02
von STEPHAN
Hi,

ich muss per NTP die Zeit eines Servers via Internet abfragen und in meinem Programm verarbeiten.

Es geht NICHT darum, die Zeit mit dem Rechner zu synchronisieren, sondern nur, die Zeit in einem String zu haben.

Ich nutze XB++, Asinet, XB2NET.

Hat jemand eine Idee ?

Danke

Stephan

Re: NTP Zeit abfragen

Verfasst: Di, 10. Apr 2012 23:03
von Lewi
Hi!
Xb2Net verfügt nicht über das NTP-Protoll, bei Asinet weiß ich es nicht. Das NTP Protokoll ist aber Voraussetzung, um öffentliche Zeit-Server abzufragen.
Wenn Du bei einem großen Hoster wie z.B. Strato bist, bietet sich folgender Ansatz:

- Bei einem Dedicated Server läßt sich die Uhrzeit über Zeitserver sysnchronisieren.
- Auf virtuellem Server werden, soweit ich weiß, die die Server selbst automatisch mit den Zeitservern abgeglichen.

Unter diesem Hintergrund erzeugst Du mittels FTP-Befehlen eine (leere) Datei auf den Zielserver und liest dann die Uhrzeit der erzeugten Datei aus.

Gruß, Olaf

Re: NTP Zeit abfragen

Verfasst: Di, 10. Apr 2012 23:11
von STEPHAN
Hi,

Danke für Deine Antwort. Leider habe ich keinen sonstigen Zugriff auf den Server, von dem ich die Zeit holen muss.

Ich habe auch kein Command line tool gefunden, dass einfach nur die Zeit abfragt, ohne sie gleich zu setzen.

Nur den Punkt mit dem Protokoll verstehe ich nicht:

Asinet und xb2net können auch keine E-Mail senden, trotzdem kann man mit ihren Funktionen eine E-Mail-Sende-Funktion leicht nachbauen.

Viele Grüße

Stephan

Re: NTP Zeit abfragen

Verfasst: Mi, 11. Apr 2012 0:09
von Lewi
Du sollst die Zeit von einem Zielserver holen, ohne dass Du Zugriff auf den Server hast? Wenn es sich um einen Internetserver handelt, dann würde ein FTP-Zugang für ein bestimmtest Verzeichnis doch völlig reichen. Wie gesagt, Du könntest die Zeit auch bei Deinem Hoster über den aufgezeigten Weg ermitteln. Die andere Frage ist, ob der von Dir erwähnte Zielserver überhaupt über das NTP-Protokoll erreichbar ist, so dass eine Zeitabfrage überhaupt möglich wäre.

Re: NTP Zeit abfragen

Verfasst: Mi, 11. Apr 2012 0:16
von STEPHAN
Ich bin Internet Pro. Es geht nicht um die Zeit irgendeines Servers meines Hosters. Die könnte ich ja auch per NTP Zeitabgleich bekommen.

Es geht um einen fremden Server der in Sudafrika sitzt und manchmal etwas aus dem Tackt ist. Trotzdem muss ich etwas zu einer bestimmten Zeit dieses Servers einliefern. Die Zeit kann ich oer NTP abfragen.

Re: NTP Zeit abfragen

Verfasst: Mi, 11. Apr 2012 0:18
von Tom
NTP ist jedenfalls nicht trivial. Es handelt sich ja auch nicht um ein simples "Abfrageprotokoll" wie etwa SOAP, sondern um einen sicheren Algorithmus, der es trotz der Verbindungslatenzen erlaubt, Echtzeiten millisekundengenau zu synchronisieren.

Re: NTP Zeit abfragen

Verfasst: Mi, 11. Apr 2012 0:36
von Lewi
Dann formuliere doch bitte Dein Problem das nächste Mal etwas genauer.
Die Zeit kann ich oer NTP abfragen
Wenn Du über NTP mit dem Zielserver kommunizieren kannst, wo liegt denn das Problem????

Nachtrag:
Es stellt mir dann auch die Frage. welche Zeit für die Ablieferung maßgebend ist: die Zeit des aus dem Takt gekommen Servers oder die tatsächliche UTC-Zeit am Standort? Und ..eine Zeitabfrage und eine Zeitsynchonisation wären dann 2 unterschiedliche Probleme.

Re: NTP Zeit abfragen

Verfasst: Mi, 11. Apr 2012 0:51
von STEPHAN
Ich habe keinen Weg gefunden, die Zeit des fremden Servers in mein Xbase Programm zu bekommen.

Es geht nur im die Zeit des Servers also mit den 1-2 Minuten Abweichung.

Re: NTP Zeit abfragen

Verfasst: Mi, 11. Apr 2012 8:12
von Martin Altmann
Moin,
dafür gibt es das RFC 5905 (NTP Version 4) und das RFC 1305 (NTP Version 3) - einfach mal googeln ;-)
http://www.faqs.org/rfcs/rfc1305.html
http://www.faqs.org/rfcs/rfc5905.html
Wie Du ja weißt, sind alle "Internet-"Standards in sogenannten RFC (Request For Comment) fest definiert.

Viele Grüße,
Martin

Re: NTP Zeit abfragen

Verfasst: Mi, 11. Apr 2012 8:22
von brandelh
Wenn du die Möglichkeit hast, auf dem Server eine WEB-Seite mit PHP zu erzeugen, die die Uhrzeit anzeigt,
dann kannst du diese einfach mit LoadFromUrl() (Asinet oder Phils Funktion) abfragen und als String weiterverarbeiten.

Wenn nicht, musst du das NTP Protokoll mit den Socketfunktionen nachbauen.
Eventuell kannst du im Internet ja eine NTP Quelle finden, die die Ergebnisse anzeigt, statt zu syncronisieren.

Wie übermittelst du eigentlich die Daten ?

Re: NTP Zeit abfragen

Verfasst: Mi, 11. Apr 2012 11:26
von STEPHAN
Wie gesagt, ich habe leider keinen Zugriff auf den Server außer NTP.

Zusätzlich ist nur ein Port offen, über den ich senden kann, dort gibt’s aber keine Zeit.

Die erwarten, dass man sich über die normalen Zeitfunktionen synchronisiert, aber ich habe den Server schon auf ein anderes System synchronisiert.

Ich hatte gehofft, dass jemand da schon mal was gemacht hat, aber ich muss mich wohl mal durch das RFCs arbeiten.

Re: NTP Zeit abfragen

Verfasst: Mi, 11. Apr 2012 14:03
von brandelh
Du kannst den NTP Zeitserver temporär wechseln und auf diesen "falschen" syncronisieren.
Wie es mit den Zeitzohnen aussieht bin ich mir nicht sicher ...
Dann erledigst du was immer du tun mußt und setzt den NTP Zeitserver zurück und syncronisierst wieder richtig.

In der Wissensbasis habe ich vor ewigen Zeiten ein solches Script (für einmalige Einrichtung eines NTP Servers) hinterlegt.

http://www.xbaseforum.de/viewtopic.php? ... Zeitserver

dazwischen müsstest du den Abgleich erzwingen