解析自定义tshark显示过滤器中的协议名称

时间:2013-09-11 03:32:41

标签: wireshark tshark

我想解析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已经知道如何解码它们,我只需要弄清楚如何在我的解析中得到它。

2 个答案:

答案 0 :(得分:1)

Found the answer

-e col.Protocol

就像经常发生的那样,你会在几天内解决问题,发布问题然后找到答案。

答案 1 :(得分:1)

tshark的1.11.x和1.12版本起,字段名称为_ws.col.Protocol_ws.col.Info,而不是col.Protocolcol.Info。< / p>

示例:

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

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