【问题标题】:Convert wireshark filter notation to tshark filter notation将 wireshark 过滤器符号转换为 tshark 过滤器符号
【发布时间】:2017-07-11 23:15:37
【问题描述】:

我想用 tshark(linux,命令行)过滤一个 pcap 文件。

wireshark@windows 中我的过滤器的符号是:

frame.time >= "2017-07-11 13:37:07" && frame.time <= "2017-07-11 13:37:11"

那么 tshark 在 linux 中的正确表示法是什么?

经过多次试验,我还没有找到合适的解决方案。

提前致谢!

【问题讨论】:

    标签: filter wireshark tshark


    【解决方案1】:

    您可以使用-Y 选项。

    -是的

    在打印解码形式的数据包或将数据包写入文件之前应用指定的过滤器(它使用读取/显示过滤器的语法,而不是捕获过滤器的语法)。

    由于bash,您还必须使用single quotes 转义显示过滤器:

    tshark -Y 'frame.time >= "2017-07-11 13:37:07" && frame.time <= "2017-07-11 13:37:11"'
    

    【讨论】:

    • 感谢您的回复!该命令可以正常运行,但新的 pcap 文件中没有任何数据包。如果我有一个带有 1 个数据包的 pcap 文件,并且我当然使用调整的数据包时间运行您的 tshark 命令,那么没有数据包被过滤到新的 pcap 文件............
    • 试试看。根据数据包的到达时间从 pcap 文件中过滤掉一个数据包,并将其保存到另一个 pcap 文件中。代码:tshark -r infile.pcap -w outfile.pcap -Y 'frame.time >= "YYYY-MM-DD HH:MM:SS" && frame.time
    【解决方案2】:

    啊,现在我找到了问题的解决方案!

    将 tshark 过滤器“frame.time”替换为“frame.time_epoch”,例如“2017-07-11 13:37:10”替换为“1499773030.999955000”会导致数据包被过滤掉。 :)))

    【讨论】:

    • 对于我的回答,我只检查了句法的观点。如果您对自己的答案感到满意,可以将其标记为正确答案。
    猜你喜欢
    • 1970-01-01
    • 2016-08-10
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 2020-05-01
    相关资源
    最近更新 更多