Mergecap is a program that combines multiple saved capture files into a single
output file specified by the -w
argument. Mergecap knows how to read libpcap
capture files, including those of tcpdump. In addition, Mergecap can read
capture files from snoop (including Shomiti) and atmsnoop, LanAlyzer, Sniffer
(compressed or uncompressed), Microsoft Network Monitor, AIX’s iptrace, NetXray,
Sniffer Pro, RADCOM’s WAN/LAN analyzer, Lucent/Ascend router debug output,
HP-UX’s nettl, and the dump output from Toshiba’s ISDN routers. There is no need
to tell Mergecap what type of file you are reading; it will determine the file
type by itself. Mergecap is also capable of reading any of these file formats if
they are compressed using gzip
. Mergecap recognizes this directly from the
file; the “.gz” extension is not required for this purpose.
By default, it writes the capture file in pcapng format, and writes all of the
packets in the input capture files to the output file. The -F
flag can be used
to specify the format in which to write the capture file; it can write the file
in libpcap format (standard libpcap format, a modified format used by some
patched versions of libpcap, the format used by Red Hat Linux 6.1, or the format
used by SuSE Linux 6.3), snoop format, uncompressed Sniffer format, Microsoft
Network Monitor 1.x format, and the format used by Windows-based versions of the
Sniffer software.
Packets from the input files are merged in chronological order based on each
frame’s timestamp, unless the -a
flag is specified. Mergecap assumes that
frames within a single capture file are already stored in chronological order.
When the -a
flag is specified, packets are copied directly from each input
file to the output file, independent of each frame’s timestamp.
If the -s
flag is used to specify a snapshot length, frames in the input file
with more captured data than the specified snapshot length will have only the
amount of data specified by the snapshot length written to the output file. This
may be useful if the program that is to read the output file cannot handle
packets larger than a certain size (for example, the versions of snoop in
Solaris 2.5.1 and Solaris 2.6 appear to reject Ethernet frames larger than the
standard Ethernet MTU, making them incapable of handling gigabit Ethernet
captures if jumbo frames were used).
If the -T
flag is used to specify an encapsulation type, the encapsulation
type of the output capture file will be forced to the specified type, rather
than being the type appropriate to the encapsulation type of the input capture
file. Note that this merely forces the encapsulation type of the output file to
be the specified type; the packet headers of the packets will not be translated
from the encapsulation type of the input capture file to the specified
encapsulation type (for example, it will not translate an Ethernet capture to an
FDDI capture if an Ethernet capture is read and -T fddi
is specified).
Help information available from mergecap.
Mergecap (Wireshark) 2.1.0 (v2.1.0rc0-502-g328fbc0 from master) Merge two or more capture files into one. See https://www.wireshark.org for more information. Usage: mergecap [options] -w <outfile>|- <infile> [<infile> ...] Output: -a concatenate rather than merge files. default is to merge based on frame timestamps. -s <snaplen> truncate packets to <snaplen> bytes of data. -w <outfile>|- set the output filename to <outfile> or '-' for stdout. -F <capture type> set the output file type; default is pcapng. an empty "-F" option will list the file types. -I <IDB merge mode> set the merge mode for Interface Description Blocks; default is 'all'. an empty "-I" option will list the merge modes. Miscellaneous: -h display this help and exit. -v verbose output.
A simple example merging dhcp-capture.pcapng
and imap-1.pcapng
into
outfile.pcapng
is shown below.
Simple example of using mergecap.
$ mergecap -w outfile.pcapng dhcp-capture.pcapng imap-1.pcapng