首页 > 解决方案 > 如何使用 tshark 将 pcap 文件保存到文本文件

问题描述

我有一个 pcap 文件:a.pcap,其中包含 udp 数据包。

我可以使用wireshark GUI 将此a.pcap 保存到文本文件(.txt)。(文件 -> 另存为 -> k12 文本文件)。

如何从命令行使用 tshark 做同样的事情。我想要与(文件->另存为-> k12文本文件)完全相同的输出文件。

我试过像这样的命令:

tshark -T pdml -r 1.pcap -T 字段 -e 数据 > a.xml

这将导致将 udp 有效负载写入 a.xml。这不是我需要的确切内容。

标签: textpcaptshark

解决方案


我可以使用wireshark GUI 将此a.pcap 保存到文本文件(.txt)。(文件 -> 另存为 -> k12 文本文件)。

“文本文件”涵盖了多种文本文件格式,例如:

  • 将数据包摘要显示为文本的文件(默认情况下,Wireshark 的最顶部窗格);
  • 以文本形式显示每个数据包的数据包详细信息的文件(显示每个数据包的 Wireshark 的默认中间窗格);
  • 显示数据包数据的十六进制转储的文件(显示,对于每个数据包,Wireshark 的默认最底部窗格);
  • 其中两个或所有三个的组合;
  • 数据包摘要中列的 CSV 文件;
  • 数据包中特定字段的 CSV 文件;
  • 一个 PSML 文件,以 XML 形式显示数据包摘要的组成部分;
  • 一个 PDML 文件,以 XML 形式显示每个数据包的详细信息的组成部分;
  • 显示每个数据包详细信息的 JSON 文件;
  • 显示数据包的原始十六进制数据的 C 源文件,每个数据包位于单独的 C 字节值数组中;
  • 一种文本数据包捕获格式。

因此,没有将 pcap 文件另存为的“文本”格式;有很多选择。

“K12文本格式”是一种文本抓包格式;这是一些泰克设备可以写出来的——从这个意义上说,它类似于写出原始的十六进制数据,加上一些元数据。但是,从用户界面的角度来看,它更像是 Wireshark 中的“另存为...”,因为它是一种捕获文件格式。

你这样做的方式是

tshark -F {output file format} -r {input file} -w {output file}

因此,如果您想读取 pcap 文件并将其写为“K12 文本格式”文件,您可以使用

tshark -F k12text -r a.pcap -w a.txt

您也可以使用 editcap 执行此操作:

editcap -F k12text a.pcap a.txt

推荐阅读