Jump to content

    
Dobermann

Получение времени с NTP сервера

Recommended Posts

19 hours ago, Dobermann said:

модем sim868

После регистрации в сети
AT+CSTT=\"internet\"\r\n
ждем "OK"
AT+CIICR\r\n
ждем "OK"
AT+CIPHEAD=1\r\n
ждем "OK"
AT+CIFSR\r\n
ждем получения IP
AT+CIPSTART=\"UDP\",\"pool.ntp.org\",\"123\"\r\n
ждем "OK" и "CONNECT OK"
AT+CIPSEND=48\r\n
ждем ">"
Отправляем пакет: первый байт 0x08, остальные 0.
ждем "SEND OK"

Да, все верно. Попробуйте другой сервер, этот бывает что не отвечает какое-то время.

Share this post


Link to post
Share on other sites
On 7/15/2020 at 5:56 PM, Dobermann said:

не работает этот пример. коннект к серваку есть, запрос отправляю, в ответ тишина.

Прекрасно работает, моя прога все время им пользуется. Немного другой код, но основа та же. Но прога работает непосредственно по inet, возможно у вас проблема с GSM.

Share this post


Link to post
Share on other sites
44 минуты назад, rudy_b сказал:

Прекрасно работает, моя прога все время им пользуется. Немного другой код, но основа та же.

И вот именно так, 48 байтов (первый 08, остальные 00) на 123 порт по UDP и есть ответ от сервера? Проверил и с адресом из примера, и с pool.ntp.org - один хрен, ничего в ответ не приходит. Инет, правда, сейчас мобильный. Но и со стационарным такой вариант у меня не получился ни разу...

Share this post


Link to post
Share on other sites

Штатная функция получения времени в модеме не всегда работает. Хз от чего это зависит. pool.ntp.org не отвечает на UDP пакет, по крайней мере мне и данное время)))

Share this post


Link to post
Share on other sites

Я думаю у них есть какие-то чёрные списки IP-адресов. А правильность работы своей программы (убедиться что не в ней дело) проверить не проблема - уже писал как.

Share this post


Link to post
Share on other sites

Вряд ли криворукий. скорее всего просто какую-то мелочь не учли.

Я сегодня вот обновился на W10 билд 2020, больше часа искал как в новом Edge встроенный переводчик включить.

Оказалось его просто в языковую менюшку запихнули, на другой уровень.

 

Share this post


Link to post
Share on other sites

Я делал просто и незатейливо - терминалкой (teraterm) посылал 48 байтов через udp, использовав известную софтинку TCP-COM. Нет ответа, перебирал разные серверы. Если припечет - буду, конечно, смотреть, как готовые клиенты это делают, но вот пока пребываю в уверенности, что с таким вот 48-байтовым пакетом из нулей с первым 08 каменный цветок никак не выходит...

Share this post


Link to post
Share on other sites
2 часа назад, CADiLO сказал:

Сервер NTP можно и другой подставить. В гугле список не проблема найти.

pool.ntp.org - это не один сервер. Это пул из сотен серверов. Каждый раз по этому DNS выдается 4 разных IP адреса:

pool.ntp.org.           150     IN      A       192.36.143.130
pool.ntp.org.           150     IN      A       94.103.91.82
pool.ntp.org.           150     IN      A       91.209.94.10
pool.ntp.org.           150     IN      A       85.21.78.8
;; Received 142 bytes from 45.33.123.43#53(e.ntpns.org) in 175 ms
...
pool.ntp.org.           150     IN      A       85.21.78.23
pool.ntp.org.           150     IN      A       88.212.196.95
pool.ntp.org.           150     IN      A       128.0.142.251
pool.ntp.org.           150     IN      A       91.206.16.3
;; Received 142 bytes from 85.214.195.29#53(d.ntpns.org) in 107 ms

 

Вообще аналогичный запрос у меня с ПК работает, ответы приходят:

$ hd ntp.dat
00000000  08 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000030
$ cat ntp.dat | sudo nc -D -u pool.ntp.org 123 > ntpout.dat
^C
$ hd ntpout.dat
00000000  0c 02 03 e9 00 00 00 87  00 00 05 2f 3e e7 06 62  |.........../>..b|
00000010  e2 bb 27 23 60 7c b6 28  00 00 00 00 00 00 00 00  |..'#`|.(........|
00000020  e2 bb 28 5b 9d 80 12 52  e2 bb 28 5b 9d 82 97 99  |..([...R..([....|
00000030

 

Share this post


Link to post
Share on other sites
11 hours ago, NStorm said:

pool.ntp.org - это не один сервер. Это пул из сотен серверов. Каждый раз по этому DNS выдается 4 разных IP адреса:

ну и зачем такая лотерея?

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

On 7/15/2020 at 11:35 PM, jcxz said:

Использовать SNTP-сервер на своём компе. Синхронизироваться с ним.

А, так и я могу. Я думал Вы нашли способ как в выходной поток модема вклиниться и WireShark туда подключить :)

Share this post


Link to post
Share on other sites
5 minutes ago, Ruslan1 said:

Я обычно IP адрес использую вместо имени

Вот уж точно лотерея) Автор топика: используйте любое имя. У меня что на компе, что на разных железках, в т.ч. и своих работает)

image.thumb.png.35d5f5dffe0e779a2ba9c50690836dc7.png

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.