使用Wireshark命令行工具(如tshark)从pcap文件中获取第一次和最后一次次数



我收集了大量的PCAP文件,其中一些文件在被捕获后被"触摸"过。这意味着文件上的系统时间戳可能不等于数据捕获的时间。此外,大多数文件都是从Wireshark自动保存的,有时主机直到捕获时间之后才从tap中获取数据,所以如果这发生在文件自动保存之后,下一个顺序文件实际上在前一个文件结束时间之前进行捕获。

我有一个自动解析器,它使用tshark来遍历这些文件。但是,每个文件运行大约需要2分钟,而且我有成千上万个文件,在运行完问题文件之后,我才知道存在时间戳问题。

是否有一种简单的方法可以使用tshark(或其他命令行工具)从PCAP文件中获取第一个"epoch time"和最后一个"epoch time",而无需扫描整个文件?

No (not with 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>

capinfos是更好的解决方案,但如果你无法访问它或想使用tshark,你可能会想要这样做

tshark -r $file -Tfields -e frame.time_delta | sort -n | tail -1

最新更新