Форум: "Начинающим";
Текущий архив: 2011.09.25;
Скачать: [xml.tar.bz2];
ВнизСовпадает ли время на компьютере с настоящим Найти похожие ветки
← →
Сергей (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;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.004 c