2016-08-03 89 views
2

我用tcpdump得到了一堆pcap文件。我需要搜索所有关键字并记录哪些文件包含这些字符串。有没有办法使用tcpdump命令自动搜索这些关键字?用tcpdump搜索很多pcap文件

+1

也许一个使用'''dpkt'''模块的python脚本可以帮助你实现 –

回答

1

有更强大的tcpdump版本,tshark(它是wireshark包中的命令行工具)。您可以使用tshark -T字段| pdml | ps | psml | text以您喜欢的格式转储数据包,并且只需grep它。 tshark可以读取tcpdump转储。

+0

我不太确定我会如何使用它。假设我有一个捕获文件(capture.pcap),我想搜索文件是否包含关键字“example1”和“example2”。我将如何使用您的解决方案? –

2

可能使用tshark最通用的解决方案是将运行类似:

tshark -r file.pcap -Y "frame contains foo" 

...其中foo是你要搜索的字符串。有关使用contains和其他运算符(如支持Perl兼容正则表达式的matches运算符)进行筛选的更多信息,请参阅wireshark-filter man page

使用该命令,您将看到的输出将是与过滤器匹配的每个数据包的单行摘要。你可以定制使用多种方法的输出,但例如,假设你只想知道匹配数据包的帧数,你可以运行:

tshark -r file.pcap -Y "frame contains foo" -T fields -e frame.number 

参考tshark man page的详细信息,在-T-e选项,以及可能对您有用的其他选项。