Python中的NTP时间同步

原文出处: https://xugaoxiang.com/2019/12/08/python-ntp/

软硬件环境

  • ubuntu 18.04 64bit
  • python3
  • ntp 4.2.8p11

NTP简介

网络时间协议(Network Time Protocol,简称NTP)是在数据网络潜伏时间可变的计算机系统之间通过分组交换进行时钟同步的一个网络协议。自1985年以来,NTP是目前仍在使用的最古老的互联网协议之一。NTP由特拉华大学的David L. Mills设计。

NTP意图将所有参与计算机的协调世界时(UTC)时间同步到几毫秒的误差内。它使用Marzullo算法的修改版来选择准确的时间服务器,其设计旨在减轻可变网络延迟造成的影响。NTP通常可以在公共互联网保持几十毫秒的误差,并且在理想的局域网环境中可以实现超过1毫秒的精度。不对称路由和拥塞控制可能导致100毫秒(或更高)的错误。

该协议通常描述为一种主从式架构,但它也可以用在点对点网络中,对等体双方可将另一端认定为潜在的时间源。发送和接收时间戳采用用户数据报协议(UDP)的通信端口123实现。这也可以使用广播或多播,其中的客户端在最初的往返校准交换后被动地监听时间更新。

当前协议为版本4(NTPv4),这是一个RFC 5905文档中的建议标准。它向下兼容指定于RFC 1305的版本v3。

安装ntpd

到站点http://ntp.org/downloads.html下载最新版的ntp服务端的源码包

tar xvf ntp-4.2.8p11.tar.gz
cd ntp-4.2.8p11
./configure
make
sudo make install

启动服务

sudo ntpd

python3时间同步

安装ntplib库

sudo pip install ntplib

书写代码

# -*- coding:utf-8 -*-
import datetime
import ntplib

client = ntplib.NTPClient()
response = client.request('127.0.0.1')
print(datetime.datetime.fromtimestamp(response.tx_time))

程序输出

2018-05-28 10:29:23.110938

参考资料

  1. http://ntp.org/
  2. https://pypi.org/project/ntplib/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迷途小书童的Note

请博主喝矿泉书!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值