目录

网络时间协议(Network Time Protocol)

用于同步时间的最广泛使用的协议已被广泛接受为实践,其通过网络时间协议(NTP)来完成。

NTP使用用户数据报协议(UDP),该协议使用最短时间在服务器和希望与给定时间源同步的客户端之间传送数据包。

网络时间协议

网络时间协议的特点如下 -

  • 默认服务器端口为123。

  • 该协议由许多与国家实验室同步的可访问时间服务器组成。

  • NTP协议标准由IETF管理,建议标准为RFC 5905,标题为“网络时间协议版本4:协议和算法规范”[NTP RFC]

  • 操作系统,程序和应用程序使用NTP以正确的方式同步时间。

在本章中,我们将重点介绍使用Python的NTP,这可以从第三方Python库ntplib中获得。 该库有效地处理繁重的工作,将结果与本地系统时钟进行比较。

安装NTP库

ntplib可从https://pypi.python.org/pypi/ntplib/下载,如下图所示。

该库借助可转换NTP协议字段的方法为NTP服务器提供简单的接口。 这有助于访问其他键值,例如闰秒。

安装NTP库

以下Python程序有助于理解NTP的用法。

import ntplib
import time
NIST = 'nist1-macon.macon.ga.us'
ntp = ntplib.NTPClient()
ntpResponse = ntp.request(NIST)
if (ntpResponse):
   now = time.time()
   diff = now-ntpResponse.tx_time
   print diff;

上述程序将产生以下输出。

使用NTP输出

在上述程序中计算时间差。 这些计算有助于法医调查。 获得的网络数据与硬盘驱动器上的数据分析根本不同。

时区的差异或获得准确的时区有助于收集通过此协议捕获消息的证据。

↑回到顶部↑
WIKI教程 @2018