利用PyShark从PCAP帧中提取UNIX时间戳

tez616oj  于 2023-05-06  发布在  Unix
关注(0)|答案(1)|浏览(301)

tcpdump在PCAP中捕获的每个数据包似乎都有UNIX(自1970年以来的秒)时间戳。但是,我不知道如何使用PyShark获得此项目。看起来PyShark只会产生我的包的三层-- IP - UDP -RTP --其中没有一层似乎有UNIX时间戳。很难相信PyShark中没有这个功能。我错过了什么?
我试着做了一个str(packet),看看PyShark在每个包中给了我什么。它提供了三层,但显然没有前缀时间戳。我希望有一种方法让PyShark产生带有PCAP头/时间戳的原始PCAP记录。您可以通过使用十六进制编辑器查看PCAP文件来查看时间戳,因此我可以编写一些与PyShark无关的东西,以便与PyShark处理同步地顺序访问PCAP记录。但这看起来像是孤注一掷的入侵

azpvetkf

azpvetkf1#

您可以使用packet.frame_info从帧层获取epoch_time。

# sample code
    import pyshark
    
    pcap_file = "tcp_sample.pcap"
    capture = pyshark.FileCapture(pcap_file, keep_packets=True)
    
    for i, packet in enumerate(capture):
        print(packet.layers)
        print(packet.frame_info)
        print(packet.frame_info.time_epoch)
        print(packet)
    
        # print only the 1st packet
        break

相关问题