【问题标题】:Get first and last times from pcap file with Wireshark command line tools (like tshark)使用 Wireshark 命令行工具(如 tshark)从 pcap 文件中获取第一次和最后一次
【发布时间】:2017-01-21 12:42:24
【问题描述】:
我收集了大量的 PCAP 文件,其中一些在被捕获后就被“触及”了。这意味着文件上的系统时间戳可能不等于数据捕获的时间。此外,大多数文件都是从 Wireshark 自动保存的,有时主机直到捕获时间之后才从水龙头获取数据,所以如果这发生在文件自动保存之后,下一个连续文件实际上在捕获之前上一个文件的结束时间。
我有一个自动解析器,它使用 tshark 来处理这些文件。但是,每个文件运行大约需要 2 分钟,而且我有数万个文件,直到它运行完问题文件后我才知道存在时间戳问题。
有没有一种简单的方法可以使用 tshark(或其他命令行工具)从 PCAP 文件中获取第一个“纪元时间”和最后一个“纪元时间”,而无需扫描整个文件?
【问题讨论】:
标签:
wireshark
pcap
epoch
tshark
【解决方案1】:
否(不适用于tshark)。
不过,Wireshark 提供了一个程序,capinfos,它会读取一个捕获文件以获取有关捕获文件的信息,例如开始时间、结束时间、数据包数等(详见帮助) .
capinfos 不进行解剖,因此会比tshark 快得多。
$capinfos -a -e wireless_080224_first.pcap.gz
File name: wireless_080224_first.pcap.gz
First packet time: 2008-02-24 13:10:09.637336
Last packet time: 2008-02-24 13:40:23.026171
$capinfos -T -r -a -e wireless_080224_first.pcap.gz
wireless_080224_first.pcap.gz 2008-02-24 13:10:09.637336 2008-02-24 13:40:23.026171
;默认输出
$capinfos wireless_080224_first.pcap.gz
File name: wireless_080224_first.pcap.gz
File type: Wireshark/tcpdump/... - pcap (gzip compressed)
File encapsulation: Ethernet
File timestamp precision: microseconds (6)
Packet size limit: file hdr: 65535 bytes
Number of packets: 15 k
File size: 12 MB
Data size: 13 MB
Capture duration: 1813.388835 seconds
First packet time: 2008-02-24 13:10:09.637336
Last packet time: 2008-02-24 13:40:23.026171
Data byte rate: 7705 bytes/s
Data bit rate: 61 kbps
Average packet size: 894.31 bytes
Average packet rate: 8 packets/s
SHA1: 222837342c170e8fb0c2673aef9c056a2ddc08ae
RIPEMD160: ecf83704b912da3d2f69f4257fa9ee1658aac6cb
MD5: b82eda24d784e69ac0828a4ebffed885
Strict time order: True
Number of interfaces in file: 1
Interface #0 info:
<snip>
【解决方案2】:
capinfos 是最好的解决方案,但如果您无法访问它或想使用 tshark,那么您可能想要这样做
tshark -r $file -Tfields -e frame.time_delta | sort -n | tail -1