MERGECAP(1) The Ethereal Network Analyzer MERGECAP(1)
mergecap - Merges two or more capture files into one
mergecap [ -hva ] [ -s snaplen ] [ -F file format ] [ -T encapsula-
tion type ] -w outfile|- infile ...
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, Ethereal, and
other tools that write captures in that format.
Mergecap can read / import the following file formats:
o libpcap/WinPcap, tcpdump and various other tools using tcpdump's cap-
o snoop and atmsnoop
o Shomiti/Finisar Surveyor captures
o Novell LANalyzer captures
o Microsoft Network Monitor captures
o AIX's iptrace captures
o Cinco Networks NetXRay captures
o Network Associates Windows-based Sniffer captures
o Network General/Network Associates DOS-based Sniffer (compressed or
o AG Group/WildPackets EtherPeek/TokenPeek/AiroPeek/EtherHelp/Packet-
o RADCOM's WAN/LAN analyzer captures
o Network Instruments Observer version 9 captures
o Lucent/Ascend router debug output
o files from HP-UX's nettl
o Toshiba's ISDN routers dump output
o the output from i4btrace from the ISDN4BSD project
o traces from the EyeSDN USB S0.
o the output in IPLog format from the Cisco Secure Intrusion Detection
o pppd logs (pppdump format)
o the output from VMS's TCPIPtrace/TCPtrace/UCX$TRACE utilities
o the text output from the DBS Etherwatch VMS utility
o Visual Networks' Visual UpTime traffic capture
o the output from CoSine L2 debug
o the output from Accellent's 5Views LAN agents
o Endace Measurement Systems' ERF format captures
o Linux Bluez Bluetooth stack hcidump -w traces
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 libpcap format, and writes
all of the packets in both 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 for-
mat, the format used by Windows-based versions of the Sniffer software,
and the format used by Visual Networks' 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
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).
The output file frame encapsulation type is set to the type of the
input files, if all input files have the same type. If not all of the
input files have the same frame encapsulation type, the output file
type is set to WTAP_ENCAP_PER_PACKET. Note that some capture file for-
mats, most notably libpcap, do not currently support
WTAP_ENCAP_PER_PACKET. This combination will cause the output file
creation to fail.
If the -T flag is used to specify a frame 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 encapsu-
lation type of the input capture files. 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 encapsu-
lation 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).
-w Sets the output filename. If the name is '-', stdout will be used.
-F Sets the file format of the output capture file.
-T Sets the packet encapsulation type of the output capture file.
-a Causes the frame timestamps to be ignored, writing all packets from
the first input file followed by all packets from the second input
file. By default, when -a is not specified, the contents of the
input files are merged in chronological order based on each frame's
timestamp. Note: when merging, mergecap assumes that packets
within a capture file are already in chronological order.
-v Causes mergecap to print a number of messages while it's working.
-s Sets the snapshot length to use when writing the data.
-h Prints the version and options and exits.
tcpdump(8), pcap(3), ethereal(1), editcap(1)
Mergecap is based heavily upon editcap by Richard Sharpe
<sharpe[AT]ns.aus.com> and Guy Harris <guy[AT]alum.mit.edu>.
Mergecap is part of the Ethereal distribution. The latest version of
Ethereal can be found at http://www.ethereal.com.
Scott Renfro <scott[AT]renfro.org>
Bill Guyton <guyton[AT]bguyton.com>
0.10.13 2005-10-10 MERGECAP(1)