我有一个大的 pcap 文件,我想生成一个只包含前十分钟流量的新 pcap。我可以这样做tcpdump
吗?我在editcap
网上看到提到过,但如果可能的话我想使用tcpdump
。
问问题
1601 次
1 回答
5
你可以用tcpdump
; 但是,它会更简单,因为我能想到editcap
的唯一实用方法是使用Wireshark(或)首先找到捕获文件中至少 10 分钟的数据包的帧号。一旦你有了帧号,就可以用来只保存直到该帧的数据包,有效地将输出文件限制在所需的 10 分钟持续时间。就是这样:tcpdump
tshark
tcpdump
首先,找到在捕获文件中至少 10 分钟的第一个数据包(这里我将用 来说明tshark
,但也可以使用 Wireshark):
tshark -r bigfile.pcap -Y "frame.time_relative <= 600.0"
注意显示的最后一个数据包的帧号。(假设标准列,帧号是每行的第一个数字tshark
。)出于说明目的,假设它是帧号 21038。
其次,用于tcpdump
仅将前 21038 帧保存到新文件:
tcpdump -r bigfile.pcap -c 21038 -w bigfile_first10min.pcap
但由于editcap
Wireshark 套件附带,您可以更简单地使用以下方法完成等效操作,这会将大型捕获文件拆分为持续时间为 10 分钟的捕获文件(最后一个除外,可能会更少):
editcap -F pcap -i 600 bigfile.pcap bigfile_split10min.pcap
如果您只对第一个文件感兴趣,请忽略其余文件。
当然,正如@madmax1 所说,您还可以对上述tshark
命令进行简单修改,将匹配过滤器的数据包写入新文件:
tshark -r bigfile.pcap -Y "frame.time_relative <= 600.0" -w bigfile_first10min.pcap
于 2016-08-03T18:52:02.723 回答