如何使用 tshark 将 pcap 文件保存到文本文件

问题描述

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

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

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

我尝试过以下命令:

tshark -T pdml -r 1.pcap -T fields -e data > a.xml

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

解决方法

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

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

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

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

“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