首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >过滤pcap的前十分钟

过滤pcap的前十分钟
EN

Stack Overflow用户
提问于 2016-01-17 00:25:50
回答 1查看 1.5K关注 0票数 2

我有一个很大的pcap文件,我想生成一个新的pcap,它只包含前十分钟的流量。我能用tcpdump做到这一点吗?我在网上看到过editcap,但如果可能的话,我还是想使用tcpdump

EN

回答 1

Stack Overflow用户

发布于 2016-08-04 02:52:03

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

首先,找到捕获文件中至少10分钟内的第一个数据包(这里我将使用tshark进行说明,但也可以使用Wireshark ):

代码语言:javascript
复制
tshark -r bigfile.pcap -Y "frame.time_relative <= 600.0"

请注意显示的最后一个数据包的帧号。(假设标准tshark列,帧编号是每行的第一个编号。)为了便于说明,我们假设它的帧号为21038。

其次,使用tcpdump仅将前21038帧保存到新文件中:

代码语言:javascript
复制
tcpdump -r bigfile.pcap -c 21038 -w bigfile_first10min.pcap

但由于editcap附带了Wireshark套件,您可以更简单地使用以下命令来完成等效操作,该命令将把大型捕获文件拆分为捕获文件,每个捕获文件的持续时间为10分钟(除了最后一个捕获文件,它可能会更短):

代码语言:javascript
复制
editcap -F pcap -i 600 bigfile.pcap bigfile_split10min.pcap

如果你只对第一个文件感兴趣,那就忽略其他文件。

当然,正如@madmax1所指出的,您也可以对上面的tshark命令进行简单的修改,将与过滤器匹配的数据包写入一个新文件:

代码语言:javascript
复制
tshark -r bigfile.pcap -Y "frame.time_relative <= 600.0" -w bigfile_first10min.pcap
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34829237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档