tcpdump在PCAP中捕获的每个数据包似乎都具有UNIX(自1970年以来的秒)时间戳。然而,我不知道如何使用PyShark获得这个项目。似乎PyShark只会生成我的数据包的三层——IP - UDP - rtp——它们似乎都没有UNIX时间戳。似乎很难相信PyShark没有这个功能。我错过了什么?
我试着做一个str(包)来看看PyShark给我的每个包。它提供了三层,但显然不提供前缀时间戳。我希望PyShark有一种方法可以产生PCAP头/时间戳的原始PCAP记录。您可以通过使用十六进制编辑器查看PCAP文件来查看时间戳,因此我可以在PyShark之外编写一些内容,以便与PyShark处理....同步顺序访问PCAP记录但这似乎是一个绝望的黑客。
您可以使用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