如何将tshark的时间格式转换为ISO格式(yyyy-dd-mm)?

12

我正在尝试从包含HTTP流量的PCAP中打印出各种字段。其中一列应该是ISO 8601格式的时间戳(YYYY-MM-DD hhmmss)。

此外,如果有人拥有在-e下有效的字段的完整列表,那将是非常棒的(例如,ip.src,frame.time等)。

举个例子,我从几个角度开始:

tshark -r out.pcap -R "tcp.port==80" -o column.format:"Packet,%m,Time,%t,Info%i" 

tshark -r out.pcap -R "tcp.port==80" -T fields -e frame.time
1个回答

9

你尝试过以下方法吗:

tshark -r out.pcap -R "tcp.port==80" -o column.format:"Packet,%m,Time,%Yt,Info,%i"

... 或者更现代的版本之一:

tshark -r out.pcap -2R "tcp.port==80" -o gui.column.format:"Packet,%m,Time,%Yt,Info,%i"

或者:

tshark -r out.pcap -Y "tcp.port==80" -o gui.column.format:"Packet,%m,Time,%Yt,Info,%i"

关键是使用%Yt而不是%t,它使用YYYY-MM-DD hhmmss.格式。如果你想要UTC时间,则使用%Yut。其他格式也是可用的。
请注意:
在Wireshark提交r52627之前解决Wireshark Issue 9272 - column format strings are only documented in source code的问题时,列格式仅在源代码中(即epan/column.c)有记录;然而,在那个版本之后,您可以运行tshark -G column-formats来查看它们。

那个修订版本目前只在Wireshark的开发版本中可用。但是,您仍然可以将源代码本身用作参考。如果您想下载开发版本,请访问Wireshark下载页面

回答您的第二个问题,即“如果有人拥有在-e下工作的所有字段的完整列表,那将是很棒的”,您可以参考Wireshark显示过滤器参考页面。基本上,任何命名字段都可以使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接