Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.09.25;
Скачать: CL | DM;

Вниз

Совпадает ли время на компьютере с настоящим   Найти похожие ветки 

 
Сергей   (2011-06-06 10:35) [0]

Подскажите, можно ли проверить совпадает ли время с компьютерами со временем, допустим, на ntp серверах microsoft?
Есть ли встроенные процедуры допустим в indy или может кто-то заморачивался?

Заранее спасибо.


 
Dennis I. Komarov ©   (2011-06-06 10:40) [1]

Разумеется можно...
(но есть "но", погрешность все-равно будет)


 
Dennis I. Komarov ©   (2011-06-06 10:44) [2]

http://ru.wikipedia.org/wiki/NTP


 
AtomicTime   (2011-06-06 10:49) [3]

Посмотри здесь:
http://www.nashgorod.ru/forum/viewtopic.php?f=36&t=180519
и дальше по ссылкам внизу страницы


 
AtomicTime   (2011-06-06 10:55) [4]

или здесь:
http://coding.derkeiler.com/Archive/Delphi/borland.public.delphi.thirdpartytools.general/2005-02/0181.html


 
Ega23 ©   (2011-06-06 11:07) [5]


> Подскажите, можно ли проверить совпадает ли время с компьютерами
> со временем, допустим, на ntp серверах microsoft?


Не совпадает. Погрешность будет всегда.


 
Gu   (2011-06-06 11:17) [6]

на форму кладем tIdSNTP из закладки компонентов Indy Clients

procedure TForm1.Button1Click(Sender: TObject);
begin
Try
IdSNTP1.Host:="time.nist.gov";
IdSNTP1.ReceiveTimeout:=1000;
IdSNTP1.Connect;
//IdSNTP1.SyncTime; // разремить, если надо синхронизировать время ПК с сервером
form1.Caption:=datetimetostr(IdSNTP1.DateTime);
IdSNTP1.Disconnect;
Except
form1.Caption:="Сервер не отвечает";
End;
end;


 
Gu   (2011-06-06 11:19) [7]

да, и не забудьте на фаэрволе проге разрешить в инет лазить по 123 порту


 
Inovet ©   (2011-06-06 11:20) [8]

> [5] Ega23 ©   (06.06.11 11:07)
> Погрешность будет всегда.

Интересно вот, погрешность эта известа? Время доставки пакетов как-то наверно учитывается +- неккоторая известная погрешность.


 
Anatoly Podgoretsky ©   (2011-06-06 11:23) [9]

Чтобы знать погрешность надо иметь эталон, с которым можно сравнить.
А время доставки пакетов учитывается.


 
oldman ©   (2011-06-06 11:23) [10]


> с настоящим


а "настоящее" это какое?


 
Andy BitOff ©   (2011-06-06 11:31) [11]


> oldman ©   (06.06.11 11:23) [10]
> а "настоящее" это какое?

11:31


 
Gu   (2011-06-06 11:34) [12]

++
время на компе можно узнать так (там выше поменять в коде)

form1.Caption:="На сервере: "+datetimetostr(IdSNTP1.DateTime)+" на компе: "+datetimetostr(now);

после команды IdSNTP1.SyncTime; происходит синхронизация (по спец.алгоритму, кот.учитывает задержки передачи и соединений), если погрешность времени не очень большая. Если очень (например на год), то синхронизации не произойдет, и делать это надо ручками, примерно так:

if IdSNTP1.SyncTime=false then <принудительная установка системного времени (PcSetSystemTime:=IdSNTP1.DateTime) и повторная синхронизация>

(PcSetSystemTime)как установить системное время - пример: http://delphiworld.narod.ru/base/set_sys_date_time.html


 
Dennis I. Komarov ©   (2011-06-06 11:54) [13]

http://msdn.microsoft.com/en-us/library/cc249642(v=PROT.13).aspx


 
Inovet ©   (2011-06-06 11:58) [14]

> [11] Andy BitOff ©   (06.06.11 11:31)
> > а "настоящее" это какое?
>
> 11:31

У космонавтов быстрее часы идут.


 
Inovet ©   (2011-06-06 12:01) [15]

> [9] Anatoly Podgoretsky ©   (06.06.11 11:23)
> Чтобы знать погрешность надо иметь эталон, с которым можно сравнить.

Зачем эталон. Технологическая погрешность заранее известна. Если на линейке деления 1 мм, то нельзя ей мерять 0,5 мм. Так и с синхронизацией времени может быть. Вот я и спрашиваю о такой погрешности.


 
Anatoly Podgoretsky ©   (2011-06-06 12:19) [16]

Откуда погрешность то известна, может там часы бегут на несколько секунд. У меня время синхронизируется с несколькими серверам, погрешность превышает несколько секунд. Сервера точного (не эталонного времени) обеспечивают точность в долях микросекунд, есть вообще очень точные - например атомные часы.


 
Inovet ©   (2011-06-06 12:34) [17]

> [16] Anatoly Podgoretsky ©   (06.06.11 12:19)
> Откуда погрешность то известна, может там часы бегут на
> несколько секунд.

Считаем, что на сервере время достаточно точно отслеживается, иначе о чём говорить. Вот с этим сервером связываемся, получаем его время с достаточной точностю, теперь надо знать погрешность доставки, она там ис чего-то складывается (округления времени задержки в маршрутизаторах, длина линий связи наиболее влияют), пока пакет идёт.


 
Anatoly Podgoretsky ©   (2011-06-06 12:53) [18]

> Inovet  (06.06.2011 12:34:17)  [17]

Так считать не стоит, а стоит считать что на разных серверах оно разное,
кроме атомных часов.
Погрешность доставки равна 1/2 от момента отсылки до момента получения, при
предпосылке, что скорость в обеих направлениях одинакова.


 
Сергей   (2011-06-06 14:24) [19]

Всем спасибо, очень помогло. Насчет погрешности - шут с ней, буду учитывать что будет погрешность, например, до минуты. Мне главное чтобы дни и часы совпадали (конечно нужно учитывать конец и начало часа).


 
Jeer ©   (2011-06-06 14:30) [20]

В зависимости от географии ntp-сервера и его статуса ( stratum x ), задержка может достигать сотен миллисекунд и даже секунд.
По версии 4 протокола ntp погрешность сихронизации через Интернет может быть не хуже 10 мс, а в локальной сети - 0.2 мс

Разобраться с "хорошими" серверами из десятков такими прикидывающимися бывает не просто.

Есть простой способ превратить собственный сервер в ntp-сервер для своей сети.
Навесить на сервер GPS-железку (навигатор или треккер), которая отдает данные в комп по NMEA-протоколу


 
Ega23 ©   (2011-06-06 14:43) [21]

ИМХО, службу синхронизации самому писать не след. Есть ntp, этого достаточно. Установи синхронизацию по нему и всё, не надо велосипеды изобретать.

З.Ы. Как же мы "назанимались любовью" с этим ntp в своё время... Когда нужно было кучу контроллеров под QNX по времени с Windows-сервером синхронизировать. А погрешность должна была быть менее секунды.


 
sniknik ©   (2011-06-06 14:48) [22]

> есть вообще очень точные - например атомные часы.
самые точные это те которые стоят! они дважды в сутки показывают абсолютно точное время... а те которые идут, обязательно или отстают или бегут, хоть на чуть но всегда...
© капитан Врунгель.


 
Inovet ©   (2011-06-06 15:02) [23]

> [22] sniknik ©   (06.06.11 14:48)
> а те которые идут, обязательно или отстают или бегут, хоть
> на чуть но всегда...

Тоже показывают но не 2 раза в сутки.


 
Inovet ©   (2011-06-06 15:06) [24]

> [20] Jeer ©   (06.06.11 14:30)
> через Интернет может быть не хуже 10 мс, а в локальной сети - 0.2 мс

Вот. Есть значит стандарт.

> [20] Jeer ©   (06.06.11 14:30)
> Разобраться с "хорошими" серверами из десятков такими прикидывающимися
> бывает не просто.

А которые в Виндоус предлагаются, интересно, хорошие? Вот по умолчанию этот хотя бы: time.windows.com.


 
Jeer ©   (2011-06-06 15:15) [25]

Тут доходчиво
http://www.opennet.ru/base/sys/ntp_conf.txt.html

Сервера
http://support.ntp.org/bin/view/Servers/StratumOneTimeServers


 
Ega23 ©   (2011-06-06 15:23) [26]


> А которые в Виндоус предлагаются, интересно, хорошие? Вот
> по умолчанию этот хотя бы: time.windows.com.


Да там нюансов - вагон и тележка. UTC тот же взять, переводы с зимнего на летнее (это ещё ничего, час вперёд) и с летнего на зимнее (а вот это уже попа, на час назад), и т.п.


 
OW ©   (2011-06-06 15:23) [27]

а зачем.. примерно такое и ладно.
главное, чтоб своей сети была синхронизация
а тут есть служба соответствующая
или по мотивам http://support.microsoft.com/kb/314054/ru настраиваем однорангово/без-инетное что-то

о часах интересно..
все(видимые мной) часы показывают время циклически. А есть ли часы, показывающие время.. ну, как число, допустим? :)
т.е.
40700,6399313773 тик
40700,6399429514 тик
40700,6399545255 тик
никому не надо, конечно, но было б оригинально и забавно.
Купил бы кто-то, имхо..


 
Ega23 ©   (2011-06-06 15:24) [28]


> главное, чтоб своей сети была синхронизация

+ 100500


 
sniknik ©   (2011-06-06 15:26) [29]

> Тоже показывают но не 2 раза в сутки.
один раз в месяц например... если убегающие поставить "до", на обгон, в момент обгона будет точно а дальше пойдет всегда...
т.что стоящие точнее.

еще точнее будут "маятники", не в смысле гирями, а отстающе/бегущие т.е. такие типа туда, сюда на какой то промежуток, тогда если точное время будет в середине то могут показывать чаще... но таких не бывает.


 
OW ©   (2011-06-06 15:38) [30]


> sniknik ©   (06.06.11 15:26) [29]

не бывает..
но легко делаются путем выдирания секундной стрелки и переводом на минуту вперед

таким образом, пока осколок секундной стрелки крутится, время показывается на минуту позже. Тут настоящее его догоняет, и перегоняет.  Затем наше скачет на минуту вперед и ждет, пока его опять догонят и перегонят.
вооть :)


 
Inovet ©   (2011-06-06 15:47) [31]

> [25] Jeer ©   (06.06.11 15:15)

Ага, посмотрел.

> [26] Ega23 ©   (06.06.11 15:23)
> UTC тот же взять, переводы с зимнего на летнее (это ещё
> ничего, час вперёд) и с летнего на зимнее (а вот это уже
> попа, на час назад), и т.п.

Это в регистраторах всяких вроде видеонаблюдения? Наверно хранить надо в UTS а показывать уже от настроек времени? А что тут ещё выдумаешь.


 
Ega23 ©   (2011-06-06 17:21) [32]


> Это в регистраторах всяких вроде видеонаблюдения?


В точку. Есть сработка на периметре, есть видеопоток. Надо сохранить видеозапись с нескольких камер, ассоциированных с данным участком, причём не просто с момента тревоги, а до и после. И сохранить это дело.


> Наверно хранить надо в UTS а показывать уже от настроек времени?


Угу, вот только когда саму систему проектировали и ни о каком видео ещё речи не шло этот нюанс не продумали. В результате получили "половые сношения", когда переделывали.



Страницы: 1 вся ветка

Текущий архив: 2011.09.25;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.01 c
4-1250595955
pirate
2009-08-18 15:45
2011.09.25
Alt+MouseUp


2-1307346032
harisma
2011-06-06 11:40
2011.09.25
Цикл по элементам TInterfaceList


3-1264572448
Xmen
2010-01-27 09:07
2011.09.25
Запись в базу и ошибкаdeadlock


15-1299763793
Юрий
2011-03-10 16:29
2011.09.25
С днем рождения ! 10 марта 2011 четверг


2-1307467358
Exterr
2011-06-07 21:22
2011.09.25
Создание панели в рабочем столе