Sziasztok!
Tudtok olyan szervert, amit meg lehet hívni HTTP protokollal, és visszakapom tőle a pontos időt?
Köszönet előre is!
Kum Gábor
www.kumgabor.hu
- 3165 megtekintés
Hozzászólások
Nem teljesen ertem milyen szinkorizaciora gondolsz http alapon.
Weboldal ahol meg tudod nezni az idot, vagy pl. cegnel csak http kereseket engedik ki es ezert kell h azon keresztul szinkronizalhasd a geped vagy mire kellene pontosan?
- A hozzászóláshoz be kell jelentkezni
Valoszinu inkabb az utobbi. Amugy eleg egyszeruen lehet csinalni valahova egy plaintext idot visszaado CGI-t, sot csinaltunk is mar ilyent, csak nem publikus.
Viszont alljon itt egy UTC ido megjelenito C progi, ebbol nagyon konnyu CGI-t csinalni (1 printf kell meg bele):
#include <stdio.h>
#include <time.h>
#include <string.h>
int main() {
time_t ido;
struct tm *fido;
char s[32];
time(&ido);
fido = gmtime(&ido);
memset(s,0,32);
strftime(s, 32, "%a, %d %b %Y %H:%M:%S %z", fido);
printf("%s\n", s);
return 0;
}
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Igazad van, csak annyi a gond, hogy nincs olyan szerverem, amin pontos lenne az idő. Különben php-vel kiírnék egy timestampet, és kész.
--
Kum Gábor
www.kumgabor.hu
- A hozzászóláshoz be kell jelentkezni
Miért nem izzítasz be egy ntp daemont, ami szinkronizál?
- A hozzászóláshoz be kell jelentkezni
Egy programom számára kellene pontos idő timestamp, nem időméréshez, hanem azért, hogy ne lehessen két azonos időpontot előidézni a gép órájának átállításával.
--
Kum Gábor
www.kumgabor.hu
- A hozzászóláshoz be kell jelentkezni
Hogy állítja elő az időbélyeget? Ha nem a "+%s"-t használja, akkor a TZ környezeti változóval már lehet is szépen trükközni -- a gép órája marad, csak a folyamat körül toljuk n órával idébb vagy odébb az időt.
Ha egy harmadik fél által üzemeltetett szerver óráját veszed fixnek (azaz az onnan visszakapott stringet tekinted időbélyegnek), akkor nem gond, bár ugye ott is lehet tologatni (tőled függetlenül) az órát, meg a TZ változót is...
- A hozzászóláshoz be kell jelentkezni
PHP-ből fogom adni neki az időbélyeget HTTP protokollon.
--
Kum Gábor
www.kumgabor.hu
- A hozzászóláshoz be kell jelentkezni
Aha, Symmetricom S-350, a szabványos time protocolok melett tud http-n is pontos idöt közölni (és sok más formában).
- A hozzászóláshoz be kell jelentkezni
date -s "`lynx -dump -head http://www.kernel.org|awk -F': ' '/Date: / {print $2}'`"
...
date -s "`lynx -dump -head http://hup.hu|awk -F': ' '/Date: / {print $2}'`"
--
trey @ gépház
- A hozzászóláshoz be kell jelentkezni
wget --save-headers http://hup.hu -q -O - | awk -F': ' '/Date: / {print $2}'`"
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Ja. Játék a betűkkel :)
--
trey @ gépház
- A hozzászóláshoz be kell jelentkezni
Es nem tudtam a benn ragadt backticket kivenni mar. Gyors vagy, hallod? :D
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Ha kiveszem, akkor sem jó. Vagy? :) A macskaköröm sem kell a végére, és akkor az is jó.
wget --save-headers http://hup.hu -q -O - | awk -F': ' '/Date: / {print $2}'
--
trey @ gépház
- A hozzászóláshoz be kell jelentkezni
Köszönöm. Gondolom ez elég pontos.
--
Kum Gábor
www.kumgabor.hu
- A hozzászóláshoz be kell jelentkezni
nezd meg
Bar UDP-n szinkronizal az ntpdate (tudtommal), de talan kiindulasnak jo.
- A hozzászóláshoz be kell jelentkezni
Magadnak akarsz pontos időt, vagy azt megnézni, hogy az adott szerveren a processz futásakor mennyi volt a rendszeridő? Az utóbbi simán megy, az előbbit meg... átlagban néhány másodperces eltéréssel fogod tudni megoldani...
A fentebb mutatott shell-es bűvészkedés helyett (időigényes művelet!) mindenképp egy röpke C-program elkövetését javasolnám, ami csinál egy darab HTTP-kérést (t0), abból minél egyszerűbben kihajítja a szükséges dolgokat, és mond egy időt t0+toda+tszerver_feld+tvisza+tlocal_feld idő múlva. Ezek közül a tlocal_feld mérhető, a toda és tvisza inkább csak becsülhető (mérés alapján), a szerver oldali feldolgozás ideje viszont nem nagyon -- legalábbis szerintem...
- A hozzászóláshoz be kell jelentkezni
Magamnak szeretnék pontos időt. A terv ugyanez, csak pythonban.
--
Kum Gábor
www.kumgabor.hu
- A hozzászóláshoz be kell jelentkezni
"Tudtok olyan szervert, amit meg lehet hívni HTTP protokollal, és visszakapom tőle a pontos időt?"
- A hozzászóláshoz be kell jelentkezni
Köszönöm a segítséget mindenkinek, a megoldás az lett, hogy kerestem egy szervert, ami folyamatosan NTP-vel szinkronizálja az óráját, és onnan hívok meg egy PHP szkriptet, ami átad nekem egy timestampet.
--
Kum Gábor
www.kumgabor.hu
- A hozzászóláshoz be kell jelentkezni