0

我正在尝试将多个 pcap 文件合并在一起以在捕获后进行后处理,但是,我需要保留有关每个数据包的源文件的信息(文件名包含有关网络分流源的信息)。此信息在数据包本身的任何地方都不可用。我的想法是使用 pcapng 的便利性,它允许向数据包添加帧注释(frame.comment),并且可以使用 editcap 以编程方式完成。我可以使用它来将文件名中的信息添加到将被转发到合并文件中的每个数据包中。然而,editcap 似乎只允许您向特定框架添加评论,editcap -a <framenumber>:<comment>而不是一系列框架。手动执行此操作不是一个可行的选择,因为我正在处理大量大型 pcap 文件。想法?

4

1 回答 1

2

这将递归地将文件名保存为每个 pcap 中每个数据包的注释。如果您只需要对一个文件执行此操作,请删除外部 for 循环。

for f in $(find *.pcap); do
  num_frames=$(capinfos -rcT "$f" | awk '{ print $NF }')
  for i in $(seq 1 $num_frames); do
    editcap "$f" "$f" -a "$i:$f" 
  done
done
  • find *.pcap将递归查找此目录中的所有 pcap 类型文件
  • capinfos是一个类似wireshark 的wireshark CLI 工具,提供关于捕获的信息

请注意,您可以动态地包含一些其他注释,例如时间戳。

于 2020-06-19T19:31:53.433 回答