Python の ntplib を使った NTP クライアントサンプル
Python には PyPi に ntplib というライブラリがあり、手軽に NTP の動作をコーディングすることが出来ます。
サンプルコード
サンプルコードは以下の通りです。 NTP バージョンは「4」でハードコードしています。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 | #!/usr/bin/env python
import datetime
import ntplib
import sys
from time import ctime
try:
version = 4
client = ntplib.NTPClient()
response = client.request(sys.argv[1], version)
nowtime = datetime.datetime.strptime(ctime(response.tx_time), "%a %b %d %H:%M:%S %Y")
print("Time : " + nowtime.strftime('%Y/%m/%d %H:%M:%S'))
print("Version : " + str(response.version))
print("Ref.ID : " + ntplib.ref_id_to_text(response.ref_id))
print("Offset : " + str(response.offset))
print("Leap : " + ntplib.leap_to_text(response.leap))
print("Root Delay : " + str(response.root_delay))
except Exception as e:
print(e)
sys.exit(1)
|
実行例
実行例は以下の通りです。
| # python ntp-tester.py time4.google.com
Time : 2019/11/23 19:44:07
Version : 4
Ref.ID : 71.79.79.71
Offset : -0.0003147125244140625
Leap : no warning
Root Delay : 0.0
|
宛先と時刻同期出来ない場合は以下のようなエラーになります。
| # python ntp-tester.py 192.0.2.1
No response received from 192.0.2.1.
|