【问题标题】:Resolving protocol names in custom tshark display filter在自定义 tshark 显示过滤器中解析协议名称
【发布时间】:2014-06-22 05:17:13
【问题描述】:

我想解析 tshark 的标准头输出。由于默认值不起作用,我正在使用一个自定义字段解析器,它几乎做同样的事情。我缺少的是协议名称的解析。我的命令是:

sudo tshark -b 256 -P -T fields -e frame.time_epoch -e ip.src -e ip.dst -e ip.proto -e ip.len -e col.Info -E separator=';' -b filesize:65535 -b files:10 -w tshark_tmp

这几乎可以工作,我得到的是(这个例子是捕获两个 ping):

1378869929.862628000;192.168.78.252;192.168.78.53;1;84;Echo (ping) request  id=0x0abe, seq=65/16640, ttl=64
1378869929.863188000;192.168.78.53;192.168.78.252;1;84;Echo (ping) reply    id=0x0abe, seq=65/16640, ttl=64 (request in 1)

相同的两个 ping 在正常的、没有自定义字段的 tshark 中看起来像这样:

0.000000 192.168.78.252 -> 192.168.78.53 ICMP 98 Echo (ping) request  id=0x0abe, seq=13/3328, ttl=64
0.000707 192.168.78.53 -> 192.168.78.252 ICMP 98 Echo (ping) reply    id=0x0abe, seq=13/3328, ttl=64 (request in 1)

我需要解决的主要区别在于我的协议是 84,而 tshark 打印的是 ICMP 98。我可以实现自己的查找表,但是有大量的协议,tshark 已经知道如何解码它们,我只需要弄清楚如何在我的解析中得到它。

【问题讨论】:

    标签: wireshark tshark


    【解决方案1】:

    tshark 的 1.11.x 和 1.12 版本开始,字段名称为 _ws.col.Protocol_ws.col.Info,而不是 col.Protocolcol.Info

    例子:

    tshark -T fields -e _ws.col.Protocol -e _ws.col.Info
    

    来源:col.Protocol missing from tshark 1.11.3 and 1.12.0-rc2

    【讨论】:

      【解决方案2】:

      Found the answer

      -e col.Protocol

      像往常一样,你解决一个问题好几天,发布问题然后找到答案。

      【讨论】:

        猜你喜欢
        • 2012-04-28
        • 1970-01-01
        • 2014-05-05
        • 2017-01-01
        • 1970-01-01
        • 2014-11-23
        • 1970-01-01
        • 2020-08-21
        • 2017-12-09
        相关资源
        最近更新 更多