【问题标题】:pcap nanoseconds Pythonpcap 纳秒 Python
【发布时间】:2014-03-12 22:15:47
【问题描述】:

有没有办法通过现有的 python 库从 pcap 中获得纳秒?我有一个纳秒级的 pcap 文件,它与 Wireshark 配合得很好,但 Python pcapy 库甚至不会导入该文件。

c libpcap 中确实存在此功能(请参阅:this thread),但有人将其移植到 Python 中吗?我查看了源代码,但我无法改变 pcapy 以允许这样做。

纳秒对于我正在做的事情是必要的,而微秒并没有给我必要的精度,尽管我的代码在微秒上运行得非常好。

【问题讨论】:

  • 也许尝试切换库。 FTR、Scapy 在 pcaps 中支持纳秒级精度

标签: python pcap libpcap


【解决方案1】:

在尝试了 Python 中每个现有的 pcap 模块后,我们决定在 pcapy 上编辑源代码。我们将其更改为包含“pcap_open_offline_with_tstamp_precision(pathname, PCAP_TSTAMP_PRECISION_NANO, errbuf);” libpcap 中已经存在的功能并且运行良好。现在我们的数据包捕获分析具有纳秒级分辨率。

【讨论】:

  • 您对 pcapy 的改进以支持纳秒精度时间戳听起来非常有用。您能分享一下您对变更的实施吗?
【解决方案2】:

在每个数据包中,如果您使用:

header.getts()[0]

它将返回纪元时间。我正在使用:

def convert_timefromepoch(epochTimestamp): return time.strftime('%Y/%m/%d %H:%M:%S', time.gmtime(epochTimestamp))

timeStamp = convert_timefromepoch(header.getts()[0])

获取用于我的输出的日期/时间字符串。

【讨论】:

    猜你喜欢
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    • 2012-12-06
    • 2019-11-25
    • 1970-01-01
    • 2017-06-19
    相关资源
    最近更新 更多