如何连接两个 tcpdump 文件(pcap 文件)

Posted

技术标签:

【中文标题】如何连接两个 tcpdump 文件(pcap 文件)【英文标题】:How to concatenate two tcpdump files (pcap files) 【发布时间】:2010-10-29 02:38:27 【问题描述】:

如何将两个tcpdump文件拼接起来,让一个流量一个接一个地出现在文件中?具体来说,我想“倍增”一个 tcpdump 文件,以便所有会话将依次重复几次。

【问题讨论】:

Merging two pcap files with libpcap的可能重复 【参考方案1】:

mergecap 可以解决您的问题,但您必须将它与“-a”选项一起使用,否则它会临时重新排序数据包。然后: mergecap -a file_1.pcap file_1.pcap file_1.cap -w output_file.pcap

【讨论】:

请注意,mergecap 是基于 debian 的发行版中“wireshark-common”包的一部分【参考方案2】:

正如其他答案所说,您可以在 Wireshark、tcpslice 或 mergecap 中使用 File->Merge。您还可以将文件拖到 Wireshark 的主窗口中。如果 Wireshark/tcpdump/snort/Ntop/etc 支持 pcap-ng,您将能够简单地连接您的捕获文件。

【讨论】:

但是他们不是都只是合并分组数据,不关心分组的序号和时间移位,以便一个连接段在时间上一个接一个地放置。 如果您使用 File->Merge 或 mergecap,您可以选择前置、按时间顺序合并(根据时间戳交错)或附加。【参考方案3】:

Wireshark 有 File -> Merge 命令可以执行此操作。

我还记得 mergecap 是一个这样做的工具,但我有一段时间没有使用它了。

【讨论】:

【参考方案4】:

使用 Wireshark 的 mergecap:

mergecap ... -w output.cap

【讨论】:

【参考方案5】:

要加入多个 pcap,请使用此批处理脚本

所有 pcap 文件必须在批处理脚本所在的同一文件夹中,并且当您 dir 目录时,第一个 pcap 文件必须命名为 01.pcap,第二个必须命名为 02.pcap,没有其他限制。

@echo off
@setlocal enableextensions enabledelayedexpansion

set /a var1=1
set mergecapL="C:\Program Files\Wireshark"

dir /b *.pcap > list.txt
%mergecapL%\mergecap.exe -w %cd%\out%var1%.pcap %cd%\01.pcap %cd%\02.pcap
FOR /F "skip=2 delims=" %%A IN (list.txt) DO (
    set var2=!var1!
    set /a var1+=1
    %mergecapL%\mergecap.exe -w %cd%\out!var1!.pcap %cd%\out!var2!.pcap "%cd%\%%A"
    del out!var2!.pcap
)
del list.txt

【讨论】:

【参考方案6】:

试试pcapjoiner(商业,演示限制为1000个数据包)。

【讨论】:

当您拥有 mergecap 时,为什么要使用商业的、封闭源代码的、有限的工具?

以上是关于如何连接两个 tcpdump 文件(pcap 文件)的主要内容,如果未能解决你的问题,请参考以下文章

如何查看pcap包传输的文件

“tcpdump -w 1.pcap”有效,但“tcpdump -C 100 -w 1.pcap” - 权限被拒绝

tcpdump与wireshark

pcap文件用啥软件查看。

如何读懂tcpdump的输出

求tcpdump高手解惑!tcpdump -X -s 0 -i any port 8123 -w ./tcpdump/xdrout.pcap 这条命令的作用