【问题标题】:how to programmatically set label frame.ref_time in wireshark capture如何在wireshark捕获中以编程方式设置标签frame.ref_time
【发布时间】:2017-03-08 20:49:21
【问题描述】:

我有数百个捕获文件,需要汇总对服务器向大量客户端发出的特定请求的响应。我正在使用脚本来处理使用 tshark 的捕获文件。

我想以编程方式为匹配某个显示过滤器的数据包设置frame.ref_time,然后使用frame.time_relative < x seconds 重新扫描以满足我的目的(我已经使用tcp.stream 作为过滤器,但需要进一步限制)。

tshark 和 editcap 似乎都没有这样做,但我不确定。这个能力肯定不限于gui吗?

如何通过脚本以编程方式设置frame.ref_time? 设置了标签,有没有直截了当的方法来清除所有标签,还是我应该优雅地进行反向操作?

【问题讨论】:

    标签: wireshark tshark


    【解决方案1】:

    据我所知,您只能使用 GUI 设置 frame.ref_time;但是,此限制对您来说可能不一定是问题。应用过滤器后,当这些数据包写入新文件通过管道传输到另一个 tshark 实例时,所有帧都将与匹配过滤器的第一个数据包相对帧;因此,您应该能够使用tshark 的两个实例来实现您所需要的,第一个用于隔离感兴趣的流,第二个用于隔离与时间相关标准匹配的那些帧。

    例如,假设您对与 TCP 流 0 相关的数据包感兴趣,但只对属于该流的一部分且在流开始后 0.1 秒内收到的数据包感兴趣。在这种情况下,您可以使用如下命令:

    tshark -r capturefile.pcap -Y "tcp stream eq 0" -w - | tshark -r - -Y "frame.time_relative < 0.1"
    

    有关tshark 选项的更多信息,请参阅tshark man page

    【讨论】:

    • 谢谢。这完美地工作。我最终得到了我需要的每个流的两个相关帧,而没有额外的混乱。尽管额外调用了 tshark,但它比我之前的解决方案(尚未完成运行)快得多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    • 2013-12-14
    • 2014-09-16
    • 1970-01-01
    • 2012-02-14
    相关资源
    最近更新 更多