如何连接两个 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 文件)的主要内容,如果未能解决你的问题,请参考以下文章
“tcpdump -w 1.pcap”有效,但“tcpdump -C 100 -w 1.pcap” - 权限被拒绝
求tcpdump高手解惑!tcpdump -X -s 0 -i any port 8123 -w ./tcpdump/xdrout.pcap 这条命令的作用