tcpdump可以按时间戳过滤吗?

tcpdump可以按时间戳过滤吗?

我有一个文件,里面有tcpdump几天内捕获的数据包。我想从这个文件中查看特定时间段内捕获的数据包,这段时间只有几个小时。

我知道我可以用来tcpdump -r从文件中读取数据包。我可以使用所有常用的过滤器,例如按协议和端口号过滤。我还知道我可以用来-c限制输出的数据包数量。但这不允许我从一开始就跳过一些数据包。

我可以使用tcpdump -tttt,然后grep在我感兴趣的时间范围内,但最后我想将数据包写入一个新的(较小的)文件-w,并grep不能帮助我。

有什么方法可以指示tcpdump仅包含特定时间间隔的数据包吗?

答案1

有一个名为(wireshark 系列的一部分)的命令行工具editcap,可以按时间范围过滤 pcap 文件。 StackOverflow 上这个问题的答案中有更多信息:

https://stackoverflow.com/questions/19952991/filter-a-pcap-dump-file-for-a-specific-time-range#19955700

还有一个名为 的工具logdissect可以过滤 tcpdump 终端输出,并输出为 tcpdump 的终端输出格式,或 json(带有一些基本字段,如源/目标主机、协议、日期戳)。不幸的是,它无法输出到 pcap,但如果您不需要 pcap 输出,它可以按许多不同的标准进行过滤。它可以在 pip(python 首选安装程序)上找到,并且在 github 上有安装说明。

只是为了充分披露,我写了 logdissect。我通常不会在这里提及我自己的项目,但在这种情况下它可能会有所帮助。

相关内容