【发布时间】:2016-12-09 16:47:10
【问题描述】:
我有一堆通过 tcpdump 获得的 pcap 文件。我需要在所有这些文件中搜索特定的关键字并记录哪些文件包含这些字符串。有没有办法使用 tcpdump 命令自动搜索这些关键字?
【问题讨论】:
-
也许使用
dpkt模块的python 脚本可以帮助您实现这一目标
我有一堆通过 tcpdump 获得的 pcap 文件。我需要在所有这些文件中搜索特定的关键字并记录哪些文件包含这些字符串。有没有办法使用 tcpdump 命令自动搜索这些关键字?
【问题讨论】:
dpkt 模块的python 脚本可以帮助您实现这一目标
tcpdump 有更强大的版本,tshark(它是来自 wireshark 包的命令行工具)。您可以使用 tshark -T fields|pdml|ps|psml|text 以您喜欢的格式转储数据包,然后 grep 即可。 tshark 可以读取 tcpdump 转储。
【讨论】:
使用tshark 的最通用的解决方案可能是运行类似:
tshark -r file.pcap -Y "frame contains foo"
... 其中foo 是您要搜索的字符串。有关使用 contains 和其他运算符(例如支持 Perl 兼容的正则表达式的 matches 运算符)进行过滤的更多信息,请参阅 wireshark-filter man page。
使用该命令,您将看到的输出将是每个匹配过滤器的数据包的 1 行摘要。您可以使用多种方法定制输出,但例如,假设您只想知道匹配数据包的帧号,您可以运行:
tshark -r file.pcap -Y "frame contains foo" -T fields -e frame.number
有关-T 和-e 选项以及可能对您有用的其他选项的更多信息,请参阅tshark man page。
【讨论】: