过滤前十分钟的pcap

时间:2016-01-16 16:25:50

标签: pcap tcpdump editcap

我有一个大的pcap文件,我想生成一个只包含前十分钟流量的新pcap。我可以使用tcpdump执行此操作吗?我在网上看过editcap,但如果可能,我想使用tcpdump

1 个答案:

答案 0 :(得分:2)

您可以使用tcpdump执行此操作;但是,使用editcap会更加简单,因为使用tcpdump我能想到的唯一实用方法是首先使用Wireshark(或tshark)找到捕获文件中至少10分钟的数据包的帧编号。获得帧编号后,tcpdump可用于仅将数据包保存到该帧,从而有效地将输出文件限制为所需的10分钟持续时间。方法如下:

首先,找到第一个进入捕获文件至少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