ethereal - Interactively browse network traffic
ethereal [ -a capture autostop condition ] ... [ -b number of ring buffer files [:duration] ] [ -B byte view height ] [ -c count ] [ -f capture filter expression ] [ -h ] [ -i interface ] [ -k ] [ -l ] [ -L ] [ -m font ] [ -n ] [ -N resolving flags ] [ -o preference setting ] ... [ -p ] [ -P packet list height ] [ -Q ] [ -r infile ] [ -R display filter expression ] [ -S ] [ -s snaplen ] [ -T details view height ] [ -t time stamp format ] [ -v ] [ -w savefile] [ -y link type ] [ -z statistics-string ] [ infile ]
Ethereal is a GUI network protocol analyzer. It lets you interactively browse packet data from a live network or from a previously saved capture file. Ethereal's native capture file format is libpcap format, which is also the format used by tcpdump and various other tools.
Ethereal can read / import the following file formats:
There is no need to tell Ethereal what type of file you are reading; it will determine the file type by itself. Ethereal is also capable of reading any of these file formats if they are compressed using gzip. Ethereal recognizes this directly from the file; the '.gz' extension is not required for this purpose.
Like other protocol analyzers, Ethereal's main window shows 3 views of a packet. It shows a summary line, briefly describing what the packet is. A packet details display is shown, allowing you to drill down to exact protocol or field that you interested in. Finally, a hex dump shows you exactly what the packet looks like when it goes over the wire.
In addition, Ethereal has some features that make it unique. It can assemble all the packets in a TCP conversation and show you the ASCII (or EBCDIC, or hex) data in that conversation. Display filters in Ethereal are very powerful; more fields are filterable in Ethereal than in other protocol analyzers, and the syntax you can use to create your filters is richer. As Ethereal progresses, expect more and more protocol fields to be allowed in display filters.
Packet capturing is performed with the pcap library. The capture filter syntax follows the rules of the pcap library. This syntax is different from the display filter syntax.
Compressed file support uses (and therefore requires) the zlib library. If the zlib library is not present, Ethereal will compile, but will be unable to read compressed files.
The pathname of a capture file to be read can be specified with the -r option or can be specified as a command-line argument.
Most users will want to start Ethereal without options and configure it from the menus instead. Those users may just skip this section.
When the first capture file fills up, Ethereal will switch to writing to the next file, until it fills up the last file, at which point it'll discard the data in the first file (unless 0 is specified, in which case, the number of files is unlimited) and start writing to that file and so on.
If the optional duration is specified, Ethereal will switch also to the next file when the specified number of seconds has elapsed even if the current file is not completely fills up.
Network interface names should match one of the names listed in ``tethereal -D''. If you're using Unix, ``netstat -i'' or ``ifconfig -a'' might also work to list interface names, although not all versions of Unix support the -a flag to ifconfig.
Pipe names should be either the name of a FIFO (named pipe) or ``-'' to read data from the standard input. Data read from pipes must be in standard libpcap format.
-z dcerpc,srt,uuid,major.minor[,filter]
Collect call/reply SRT (Service Response Time) data for DCERPC interface uuid, version major.minor. Data collected is number of calls for each procedure, MinSRT, MaxSRT and AvgSRT. Example: use -z dcerpc,srt,12345778-1234-abcd-ef00-0123456789ac,1.0 to collect data for CIFS SAMR Interface. This option can be used multiple times on the command line.
If the optional filterstring is provided, the stats will only be calculated on those calls that match that filter. Example: use -z dcerpc,srt,12345778-1234-abcd-ef00-0123456789ac,1.0,ip.addr==1.2.3.4 to collect SAMR SRT statistics for a specific host.
-z io,stat
Collect packet/bytes statistics for the capture in intervals of 1 seconds. This option will open a window with up to 5 color-coded graphs where number-of-packets-per-second or number-of-bytes-per-second statistics can be calculated and displayed.
This option can be used multiple times on the command line.
This graph window can also be opened from the Analyze:Statistics:Traffic:IO-Stat menu item.
-z rpc,srt,program,version[,<filter>]
Collect call/reply SRT (Service Response Time) data for program/version. Data collected is number of calls for each procedure, MinSRT, MaxSRT and AvgSRT. Example: use -z rpc,srt,100003,3 to collect data for NFS v3. This option can be used multiple times on the command line.
If the optional filter string is provided, the stats will only be calculated on those calls that match that filter. Example: use -z rpc,srt,100003,3,nfs.fh.hash==0x12345678 to collect NFS v3 SRT statistics for a specific file.
-z rpc,programs
Collect call/reply RTT data for all known ONC-RPC programs/versions. Data collected is number of calls for each protocol/version, MinRTT, MaxRTT and AvgRTT.
-z smb,srt[,filter]
Collect call/reply SRT (Service Response Time) data for SMB. Data collected is number of calls for each SMB command, MinSRT, MaxSRT and AvgSRT. Example: use -z smb,srt.
The data will be presented as separate tables for all normal SMB commands, all Transaction2 commands and all NT Transaction commands. Only those commands that are seen in the capture will have its stats displayed. Only the first command in a xAndX command chain will be used in the calculation. So for common SessionSetupAndX + TreeConnectAndX chains, only the SessionSetupAndX call will be used in the statistics. This is a flaw that might be fixed in the future.
This option can be used multiple times on the command line.
If the optional filterstring is provided, the stats will only be calculated on those calls that match that filter. Example: use -z ``smb,srt,ip.addr==1.2.3.4'' to only collect stats for SMB packets echanged by the host at IP address 1.2.3.4 .
-z fc,srt[,filter]
Collect call/reply SRT (Service Response Time) data for FC. Data collected is number of calls for each Fibre Channel command, MinSRT, MaxSRT and AvgSRT. Example: use -z fc,srt. The Service Response Time is calculated as the time delta between the First packet of the exchange and the Last packet of the exchange.
The data will be presented as separate tables for all normal FC commands, Only those commands that are seen in the capture will have its stats displayed.
This option can be used multiple times on the command line.
If the optional filterstring is provided, the stats will only be calculated on those calls that match that filter. Example: use -z ``fc,srt,fc.id==01.02.03'' to only collect stats for FC packets echanged by the host at FC address 01.02.03 .
-z ldap,srt[,filter]
Collect call/reply SRT (Service Response Time) data for LDAP. Data collected is number of calls for each implemented LDAP command, MinSRT, MaxSRT and AvgSRT. Example: use -z ldap,srt. The Service Response Time is calculated as the time delta between the Request and the Response.
The data will be presented as separate tables for all implemented LDAP commands, Only those commands that are seen in the capture will have its stats displayed.
This option can be used multiple times on the command line.
If the optional filterstring is provided, the stats will only be calculated on those calls that match that filter. Example: use -z ``ldap,srt,ip.addr==10.1.1.1'' to only collect stats for LDAP packets echanged by the host at IP address 10.1.1.1 .
The only LDAP command that are currently implemented and the stats will be available for are: BIND SEARCH MODIFY ADD DELETE MODRDN COMPARE EXTENDED
-z mgcp,srt[,filter]
Collect requests/response SRT (Service Response Time) data for MGCP. This is similar to -z smb,srt). Data collected is number of calls for each known MGCP Type, Minimum SRT, Maximum SRT and Average SRT. Example: use -z mgcp,srt.
This option can be used multiple times on the command line.
If the optional filterstring is provided, the stats will only be calculated on those calls that match that filter. Example: use -z ``mgcp,srt,ip.addr==1.2.3.4'' to only collect stats for MGCP packets exchanged by the host at IP address 1.2.3.4 .
-z conv,type[,filter]
Create a table that lists all conversations that could be seen in the capture. type specifies for which type of conversation we want to generate the statistics; currently the supported ones are
"eth" Ethernet "fc" Fibre Channel addresses "fddi" FDDI addresses "ip" IP addresses "ipx" IPX addresses "tcp" TCP/IP socket pairs Both IPv4 and IPv6 are supported "tr" TokenRing "udp" UDP/IP socket pairs Both IPv4 and IPv6 are supported
If the optional filter string is specified, only those packets that match the filter will be used in the calculations.
The table is presented with one line for each conversation and displays number of packets/bytes in each direction as well as total number of packets/bytes. By default, the table is sorted according to total number of packets.
These tables can also be generated at runtime by selecting the appropriate conversation type from the menu ``Tools/Statistics/Conversation List/''.
-z h225,counter[,filter]
Count ITU-T H.225 messages and their reasons. In the first column you get a list of H.225 messages and H.225 message reasons, which occur in the current capture file. The number of occurences of each message or reason is displayed in the second column.
Example: use -z h225,counter.
This option can be used multiple times on the command line.
If the optional filterstring is provided, the stats will only be calculated on those calls that match that filter. Example: use -z ``h225,counter,ip.addr==1.2.3.4'' to only collect stats for H.225 packets exchanged by the host at IP address 1.2.3.4 .
-z h225,srt[,filter]
Collect requests/response SRT (Service Response Time) data for ITU-T H.225 RAS. Data collected is number of calls of each ITU-T H.225 RAS Message Type, Minimum SRT, Maximum SRT, Average SRT, Minimum in Packet, and Maximum in Packet. You will also get the number of Open Requests (Unresponded Requests), Discarded Responses (Responses without matching request) and Duplicate Messages. Example: use -z h225,srt.
This option can be used multiple times on the command line.
If the optional filterstring is provided, the stats will only be calculated on those calls that match that filter. Example: use -z ``h225,srt,ip.addr==1.2.3.4'' to only collect stats for ITU-T H.225 RAS packets exchanged by the host at IP address 1.2.3.4 .
-z sip,stat[,filter]
This option will activate a counter for SIP messages. You will get the number of occurences of each SIP Method and of each SIP Status-Code. Additionally you also get the number of resent SIP Messages (only for SIP over UDP).
Example: use -z sip,stat.
This option can be used multiple times on the command line.
If the optional filter string is provided, the stats will only be calculated on those calls that match that filter. Example: use -z ``sip,stat,ip.addr==1.2.3.4'' to only collect stats for SIP packets exchanged by the host at IP address 1.2.3.4 .
Printing options can be set with the Edit:Preferences menu item, or in the dialog box popped up by this menu item.
When searching for a text string, you can search the packet data, or you can search the text in the Info column in the packet list pane or in the packet details pane.
Hexadecimal digits can be separated by colons, periods, or dashes. Text string searches can be ASCII or Unicode (or both), and may be case insensitive.
Packets that have been selected as Time Reference packets will always be displayed in the packet list pane. Display filters will not affect or hide these packets.
If there is a column displayed for ``Culmulative Bytes'' this counter will be reset at every Time Reference packet.
When Ethereal starts, the color filters are loaded from: 1. The user's personal color filters file or, if that does not exist, 2. The global color filters file. If neither of these exist then the packets will not be colored.
If that data is a field that can be tested in a display filter expression, the display filter will test that field; otherwise, the display filter will be based on absolute offset within the packet, and so could be unreliable if the packet contains protocols with variable-length headers, such as a source-routed token-ring packet.
The Selected option creates a display filter that tests for a match of the data; the Not Selected option creates a display filter that tests for a non-match of the data. The And Selected, Or Selected, And Not Selected, and Or Not Selected options add to the end of the display filter in the strip at the bottom an AND or OR operator followed by the new display filter expression.
When a protocol is disabled, dissection in a particular packet stops when that protocol is reached, and Ethereal moves on to the next packet. Any higher-layer protocols that would otherwise have been processed will not be displayed. For example, disabling TCP will prevent the dissection and display of TCP, HTTP, SMTP, Telnet, and any other protocol exclusively dependent on TCP.
The list of protocols can be saved, so that Ethereal will start up with the protocols in that list disabled.
The window in which the data stream is displayed lets you select:
and lets you print what's currently being displayed, using the same print options that are used for the File:Print Packet menu item, or save it as text to a file.
The top part of the window contains the graphs and scales for the X and Y axis. If the graph is too long to fit inside the window there is a horizontal scrollbar below the drawing area that can scroll the graphs to the left or the right. The horizontal axis displays the time into the capture and the vertical axis will display the measured quantity at that time.
Below the drawing area and the scrollbar are the controls. On the bottom left there will be five similar sets of controls to control each induvidual graph such as ``Display:<button>'' which button will toggle that individual graph on/off. If <button> is ticked, the graph will be displayed. ``Color:<color>'' which is just a button to show which color will be used to draw that graph (color is only available in Gtk2 version) and finally ``Filter:<filter-text>'' which can be used to specify a display filter for that particular graph.
If filter-text is empty then all packets will be used to calculate the quantity for that graph. If filter-text is specified only those packets that match that display filter will be considered in the calculation of quantity.
To the right of the 5 graph controls there are four menus to control global aspects of the draw area and graphs. The ``Unit:'' menu is used to control what to measure; ``packets/tick'', ``bytes/tick'' or ``advanced...''
packets/tick will measure the number of packets matching the (if specified) display filter for the graph in each measurement interval.
bytes/tick will measure the total number of bytes in all packets matching the (if specified) display filter for the graph in each measurement interval.
advanced... see below
``Tick interval:'' specifies what measurement intervals to use. The default is 1 second and means that the data will be counted over 1 second intervals.
``Pixels per tick:'' specifies how many pixels wide each measurement interval will be in the drawing area. The default is 5 pixels per tick.
``Y-scale:'' controls the max value for the y-axis. Default value is ``auto'' which means that Ethereal will try to adjust the maxvalue automatically.
``advanced...'' If Unit:advanced... is selected the window will display two more controls for each of the five graphs. One control will be a menu where the type of calculation can be selected from SUM,COUNT,MAX,MIN,AVG and LOAD, and one control, textbox, where the name of a single display filter field can be specified.
The following restrictions apply to type and field combinations:
SUM: available for all types of integers and will calculate the SUM of all occurences of this field in the measurement interval. Note that some field can occur multiple times in the same packet and then all instances will be summed up. Example: 'tcp.len' which will count the amount of payload data transferred across TCP in each interval.
COUNT: available for all field types. This will COUNT the number of times certain field occurs in each interval. Note that some fields may occur multiple times in each packet and if that is the case then each instance will be counted independently and COUNT will be greater than the number of packets.
MAX: available for all integer and relative time fields. This will calculate the max seen integer/time value seen for the field during the interval. Example: 'smb.time' which will plot the maximum SMB response time.
MIN: available for all integer and relative time fields. This will calculate the min seen integer/time value seen for the field during the interval. Example: 'smb.time' which will plot the minimum SMB response time.
AVG: available for all integer and relative time fields.This will calculate the average seen integer/time value seen for the field during the interval. Example: 'smb.time' which will plot the average SMB response time.
LOAD: available only for relative time fields (response times).
Example of advanced: Display how NFS response time MAX/MIN/AVG changes over time:
Set first graph to:
filter:nfs&&rpc.time Calc:MAX rpc.time
Set second graph to
filter:nfs&&rpc.time Calc:AVG rpc.time
Set third graph to
filter:nfs&&rpc.time Calc:MIN rpc.time
Example of advanced: Display how the average packet size from host a.b.c.d changes over time.
Set first graph to
filter:ip.addr==a.b.c.d&&frame.pkt_len Calc:AVG frame.pkt_len
LOAD: The LOAD io-stat type is very different from anything you have ever seen before! While the response times themself as plotted by MIN,MAX,AVG are indications on the Server load (which affects the Server response time), the LOAD measurement measures the Client LOAD. What this measures is how much workload the client generates, i.e. how fast will the client issue new commands when the previous ones completed. i.e. the level of concurrency the client can maintain. The higher the number, the more and faster is the client issuing new commands. When the LOAD goes down, it may be due to client load making the client slower in issuing new commands (there may be other reasons as well, maybe the client just doesn't have any commands it wants to issue right then).
Load is measured in concurrency/number of overlapping i/o and the value 1000 means there is a constant load of one i/o.
In each tick interval the amount of overlap is measured. See the graph below containing three commands: Below the graph are the LOAD values for each interval that would be calculated. | | | | | | | | | | | | | | | | | | | | o=====* | | | | | | | | | | | | | | | | o========* | o============* | | | | | | | | | | | | --------------------------------------------------> Time 500 1500 500 750 1000 500 0 0
By default the list is sorted according to the number of packets but by clicking on the column header; it is possible to re-sort the list in ascending or descending order by any column.
By first selecting a conversation by clicking on it and then using the right mouse button (on those platforms that have a right mouse button) ethereal will display a popup menu offering several different filter operations to apply to the capture.
These statistics windows can also be invoked from the Ethereal command line using the -z conv argument.
This dialog will also allow an optional filter string to be used. If an optional filter string is used only such DCE-RPC request/response pairs that match that filter will be used to calculate the statistics. If no filter string is specified all request/response pairs will be used.
This dialog will also allow an optional filter string to be used. If an optional filter string is used only such FC first/last exchange pairs that match that filter will be used to calculate the statistics. If no filter string is specified all request/response pairs will be used.
This dialog will also allow an optional filter string to be used. If an optional filter string is used only such ONC-RPC request/response pairs that match that filter will be used to calculate the statistics. If no filter string is specified all request/response pairs will be used.
By first selecting a conversation by clicking on it and then using the right mouse button (on those platforms that have a right mouse button) ethereal will display a popup menu offering several different filter operations to apply to the capture.
The data will be presented as separate tables for all normal SMB commands, all Transaction2 commands and all NT Transaction commands. Only those commands that are seen in the capture will have its stats displayed. Only the first command in a xAndX command chain will be used in the calculation. So for common SessionSetupAndX + TreeConnectAndX chains, only the SessionSetupAndX call will be used in the statistics. This is a flaw that might be fixed in the future.
You can apply an optional filter string in a dialog box, before starting the calculation. The stats will only be calculated on those calls matching that filter.
By first selecting a conversation by clicking on it and then using the right mouse button (on those platforms that have a right mouse button) ethereal will display a popup menu offering several different filter operations to apply to the capture.
You can apply an optional filter string in a dialog box, before starting the calculation. The statistics will only be calculated on those calls matching that filter.
You can apply an optional filter string in a dialog box, before starting the calculation. The statistics will only be calculated on those calls matching that filter.
You can apply an optional filter string in a dialog box, before starting the counter. The statistics will only be calculated on those calls matching that filter.
This window opened will update in semi-real time to reflect changes when doing live captures or when reading new capture files into Ethereal.
You can apply an optional filter string in a dialog box, before starting the counter. The statistics will only be calculated on those calls matching that filter.
The main window is much more flexible than before. The layout of the main window can be customized by the Layout page in the dialog box popped up by Edit:Preferences, the following will describe the layout with the default settings.
tcp.port == 80 || tcp.port == 443 || tcp.port == 53
Selecting the Filter: button lets you choose from a list of named filters that you can optionally save. Pressing the Return or Enter keys, or selecting the Apply button, will cause the filter to be applied to the current list of packets. Selecting the Reset button clears the display filter so that all packets are displayed (again).
There is no way to customize the items in the toolbar, however the toolbar can be hidden by View:Filter Toolbar.
If you click on the heading for a column, the display will be sorted by that column; clicking on the heading again will reverse the sort order for that column.
An effort is made to display information as high up the protocol stack as possible, e.g. IP addresses are displayed for IP packets, but the MAC layer address is displayed for unknown packet types.
The right mouse button can be used to pop up a menu of operations.
The middle mouse button can be used to mark a packet.
The right mouse button can be used to pop up a menu of operations.
The statusbar can be hidden by View:Statusbar.
The Column title entry is used to specify the title of the column displayed at the top of the packet list. The type of data that the column displays can be specified using the Column format option menu. The row of buttons on the left perform the following actions:
The Interface: combo box lets you specify the interface from which to capture packet data, or the name of a FIFO from which to get the packet data.
The Data link type: option menu lets you, for some interfaces, select the data link header you want to see on the packets you capture. For example, in some OSes and with some versions of libpcap, you can choose, on an 802.11 interface, whether the packets should appear as Ethernet packets (with a fake Ethernet header) or as 802.11 packets.
The Limit each packet to ... bytes check box lets you set the snapshot length to use when capturing live data; turn on the check box, and then set the number of bytes to use as the snapshot length.
The Filter: text entry lets you set a capture filter expression to be used when capturing.
If any of the environment variables SSH_CONNECTION, SSH_CLIENT, REMOTEHOST, DISPLAY, or CLIENTNAME are set, Ethereal will create a default capture filter that excludes traffic from the hosts and ports defined in those variables.
The Capture packets in promiscuous mode check box lets you specify whether to put the interface in promiscuous mode when capturing.
The Update list of packets in real time check box lets you specify that the display should be updated as packets are seen.
The Automatic scrolling in live capture check box lets you specify whether, in an ``Update list of packets in real time'' capture, the packet list pane should automatically scroll to show the most recently captured packets.
The Capture Filter dialog lets you do all of the editing operations listed, and also lets you choose or construct a filter to be used when capturing packets.
The Display Filter dialog lets you do all of the editing operations listed, and also lets you choose or construct a filter to be used to filter the current capture being viewed.
The Read Filter dialog lets you do all of the editing operations listed, and also lets you choose or construct a filter to be used to as a read filter for a capture file you open.
The Search Filter dialog lets you do all of the editing operations listed, and also lets you choose or construct a filter expression to be used in a find operation.
In all of those dialogs, the Filter name entry specifies a descriptive name for a filter, e.g. Web and DNS traffic. The Filter string entry is the text that actually describes the filtering action to take, as described above.The dialog buttons perform the following actions:
filter(s)
up the list, making it more likely that
they will be used to color packets.
filter(s)
down the list, making it less likely that
they will be used to color packets.
The Interface: field lets you specify the interface from which to capture packet data or a command from which to get the packet data via a pipe.
The Link layer header type: field lets you specify the interfaces link layer header type. This field is usually disabled, as most interface have only one header type.
The Capture packets in promiscuous mode check box lets you specify whether the interface should be put into promiscuous mode when capturing.
The Limit each packet to ... bytes check box and field lets you specify a maximum number of bytes per packet to capture and save; if the check box is not checked, the limit will be 65535 bytes.
The Capture Filter: entry lets you specify the capture filter using a tcpdump-style filter string as described above.
The File: entry lets you specify the file into which captured packets should be saved, as in the Printer Options dialog above. If not specified, the captured packets will be saved in a temporary file; you can save those packets to a file with the File:Save As menu item.
The Use multiple files check box lets you specify that the capture should be done in ``multiple files'' mode. This option is disabled, if the Update list of packets in real time option is checked.
The Next file every ... megabyte(s) check box and fields lets you specify that a switch to a next file should be done if the specified filesize is reached. You can also select the appriate unit, but beware that the filesize has a maximum of 2 GB. The check box is forced to be checked, as ``multiple files'' mode requires a file size to be specified.
The Next file every ... minute(s) check box and fields lets you specify that the switch to a next file should be done after the specified time has elapsed, even if the specified capture size is not reached.
The Ring buffer with ... files field lets you specify the number of files of a ring buffer. This feature will capture into to the first file again, after the specified amount of files were used.
The Stop capture after ... files field lets you specify the number of capture files used, until the capture is stopped.
The Stop capture after ... packet(s) check box and field let you specify that Ethereal should stop capturing after having captured some number of packets; if the check box is not checked, Ethereal will not stop capturing at some fixed number of captured packets.
The Stop capture after ... megabyte(s) check box and field lets you specify that Ethereal should stop capturing after the file to which captured packets are being saved grows as large as or larger than some specified number of megabytes. If the check box is not checked, Ethereal will not stop capturing at some capture file size (although the operating system on which Ethereal is running, or the available disk space, may still limit the maximum size of a capture file). This option is disabled, if ``multiple files'' mode is used,
The Stop capture after ... second(s) check box and field let you specify that Ethereal should stop capturing after it has been capturing for some number of seconds; if the check box is not checked, Ethereal will not stop capturing after some fixed time has elapsed.
The Update list of packets in real time check box lets you specify whether the display should be updated as packets are captured and, if you specify that, the Automatic scrolling in live capture check box lets you specify the packet list pane should automatically scroll to show the most recently captured packets as new packets arrive.
The Enable MAC name resolution, Enable network name resolution and Enable transport name resolution check boxes let you specify whether MAC addresses, network addresses, and transport-layer port numbers should be translated to names.
The Plugins List shows the name and version of each dissector plugin module found on your system. The plugins are searched in the following directories: the lib/ethereal/plugins/$VERSION directory under the main installation directory (for example, /usr/local/lib/ethereal/plugins/$VERSION), /usr/lib/ethereal/plugins/$VERSION, /usr/local/lib/ethereal/plugins/$VERSION, and $HOME/.ethereal/plugins on UNIX-compatible systems, and in the plugins\$VERSION directory under the main installation directory (for example, C:\Program Files\Ethereal\plugins\$VERSION) and %APPDATA%\Ethereal\plugins\$VERSION (or, if %APPDATA% isn't defined, %USERPROFILE%\Application Data\Ethereal\plugins\$VERSION) on Windows systems; $VERSION is the version number of the plugin interface, which is typically the version number of Ethereal. Note that a dissector plugin module may support more than one protocol; there is not necessarily a one-to-one correspondence between dissector plugin modules and protocols. Protocols supported by a dissector plugin module are enabled and disabled using the Edit:Protocols dialog box, just as protocols built into Ethereal are.
See the tcpdump(8)
manual page.
For a complete table of protocol and protocol fields that are filterable in Ethereal see ethereal-filter(4).
The ethereal.conf file, which is installed in the etc directory under the main installation directory (for example, /usr/local/etc) on UNIX-compatible systems, and in the main installation directory (for example, C:\Program Files\Ethereal) on Windows systems, and the personal preferences file, which is $HOME/.ethereal/preferences on UNIX-compatible systems and %APPDATA%\Ethereal\preferences (or, if %APPDATA% isn't defined, %USERPROFILE%\Application Data\Ethereal\preferences) on Windows systems, contain system-wide and personal preference settings, respectively. The file contains preference settings of the form prefname:value, one per line, where prefname is the name of the preference (which is the same name that would appear in the preference file), and value is the value to which it should be set; white space is allowed between : and value. A preference setting can be continued on subsequent lines by indenting the continuation lines with white space. A # character starts a comment that runs to the end of the line.
The system-wide preference file is read first, if it exists, overriding Ethereal's default values; the personal preferences file is then read, if it exists, overriding default values and values read from the system-wide preference file.
Note that whenever the preferences are saved by using the Save button in the Edit:Preferences dialog box, your personal preferences file will be overwritten with the new settings, destroying any comments that were in the file.
The disabled protocols file, which is $HOME/.ethereal/disabled_protos on UNIX-compatible systems and %APPDATA%\Ethereal\disabled_protos (or, if %APPDATA% isn't defined, %USERPROFILE%\Application Data\Ethereal\disabled_protos) on Windows systems, contain a list of protocols that have been disabled, so that their dissectors are never called. The file contains protocol names, one per line, where the protocol name is the same name that would be used in a display filter for the protocol. A # character starts a comment that runs to the end of the line.
Note that whenever the disabled protocols list is saved by using the Save button in the Edit:Protocols dialog box, your disabled protocols file will be overwritten with the new settings, destroying any comments that were in the file.
The ethers file, which is found in the /etc directory on UNIX-compatible systems, and in the main installation directory (for example, C:\Program Files\Ethereal) on Windows systems, is consulted to correlate 6-byte hardware addresses to names. If an address is not found in the ethers file, the $HOME/.ethereal/ethers file on UNIX-compatible systems, and the %APPDATA%\Ethereal\ethers file (or, if %APPDATA% isn't defined, the %USERPROFILE%\Application Data\Ethereal\ethers file) on Windows systems is consulted next. Each line contains one hardware address and name, separated by whitespace. The digits of the hardware address are separated by either a colon (:), a dash (-), or a period (.). The following three lines are valid lines of an ethers file:
ff:ff:ff:ff:ff:ff Broadcast c0-00-ff-ff-ff-ff TR_broadcast 00.00.00.00.00.00 Zero_broadcast
The manuf file, which is installed in the etc directory under the main installation directory (for example, /usr/local/etc) on UNIX-compatible systems, and in the main installation directory (for example, C:\Program Files\Ethereal) on Windows systems, matches the 3-byte vendor portion of a 6-byte hardware address with the manufacturer's name; it can also contain well-known MAC addresses and address ranges specified with a netmask. The format of the file is the same as the ethers file, except that entries of the form
00:00:0C Cisco
can be provided, with the 3-byte OUI and the name for a vendor, and entries of the form
00-00-0C-07-AC/40 All-HSRP-routers
can be specified, with a MAC address and a mask indicating how many bits of the address must match. Trailing zero bytes can be omitted from address ranges. That entry, for example, will match addresses from 00-00-0C-07-AC-00 through 00-00-0C-07-AC-FF. The mask need not be a multiple of 8.
The ipxnets file, which is found in the /etc directory on UNIX-compatible systems, and in the main installation directory (for example, C:\Program Files\Ethereal) on Windows systems, correlates 4-byte IPX network numbers to names. If a network number is not found in the ipxnets file, the $HOME/.ethereal/ipxnets file on UNIX-compatible systems, and the %APPDATA%\Ethereal\ipxnets file (or, if %APPDATA% isn't defined, the %USERPROFILE%\Application Data\Ethereal\ipxnets file) on Windows systems, is consulted next. The format is the same as the ethers file, except that each address if four bytes instead of six. Additionally, the address can be represented a single hexadecimal number, as is more common in the IPX world, rather than four hex octets. For example, these four lines are valid lines of an ipxnets file.
C0.A8.2C.00 HR c0-a8-1c-00 CEO 00:00:BE:EF IT_Server1 110f FileServer3
The global color filters file, colorfilters, which is installed in the etc directory under the main installation directory (for example, /usr/local/etc) on UNIX-compatible systems, and in the main installation directory (for example, C:\Program Files\Ethereal) on Windows systems, and the personal color filters file, which is $HOME/.ethereal/colorfilters on UNIX-compatible systems and %APPDATA%\Ethereal\colorfilters (or, if %APPDATA% isn't defined, %USERPROFILE%\Application Data\Ethereal\color filters) on Windows systems, contain system-wide and personal color filters, respectively.
ethereal-filter(4) tethereal(1), editcap(1), tcpdump(8), pcap(3)
The latest version of Ethereal can be found at http://www.ethereal.com.
Original Author
-------- ------
Gerald Combs <gerald[AT]ethereal.com>
Contributors
------------
Gilbert Ramirez <gram[AT]alumni.rice.edu>
Hannes R. Boehm <hannes[AT]boehm.org>
Mike Hall <mike [AT] hallzone.net>
Bobo Rajec <bobo[AT]bsp-consulting.sk>
Laurent Deniel <laurent.deniel[AT]free.fr>
Don Lafontaine <lafont02[AT]cn.ca>
Guy Harris <guy[AT]alum.mit.edu>
Simon Wilkinson <sxw[AT]dcs.ed.ac.uk>
Jörg Mayer <jmayer[AT]loplof.de>
Martin Maciaszek <fastjack[AT]i-s-o.net>
Didier Jorand <Didier.Jorand[AT]alcatel.fr>
Jun-ichiro itojun Hagino <itojun[AT]itojun.org>
Richard Sharpe <sharpe[AT]ns.aus.com>
John McDermott <jjm[AT]jkintl.com>
Jeff Jahr <jjahr[AT]shastanets.com>
Brad Robel-Forrest <bradr[AT]watchguard.com>
Ashok Narayanan <ashokn[AT]cisco.com>
Aaron Hillegass <aaron[AT]classmax.com>
Jason Lango <jal[AT]netapp.com>
Johan Feyaerts <Johan.Feyaerts[AT]siemens.com>
Olivier Abad <oabad[AT]noos.fr>
Thierry Andry <Thierry.Andry[AT]advalvas.be>
Jeff Foster <jfoste[AT]woodward.com>
Peter Torvals <petertv[AT]xoommail.com>
Christophe Tronche <ch.tronche[AT]computer.org>
Nathan Neulinger <nneul[AT]umr.edu>
Tomislav Vujec <tvujec[AT]carnet.hr>
Kojak <kojak[AT]bigwig.net>
Uwe Girlich <Uwe.Girlich[AT]philosys.de>
Warren Young <tangent[AT]mail.com>
Heikki Vatiainen <hessu[AT]cs.tut.fi>
Greg Hankins <gregh[AT]twoguys.org>
Jerry Talkington <jtalkington[AT]users.sourceforge.net>
Dave Chapeskie <dchapes[AT]ddm.on.ca>
James Coe <jammer[AT]cin.net>
Bert Driehuis <driehuis[AT]playbeing.org>
Stuart Stanley <stuarts[AT]mxmail.net>
John Thomes <john[AT]ensemblecom.com>
Laurent Cazalet <laurent.cazalet[AT]mailclub.net>
Thomas Parvais <thomas.parvais[AT]advalvas.be>
Gerrit Gehnen <G.Gehnen[AT]atrie.de>
Craig Newell <craign[AT]cheque.uq.edu.au>
Ed Meaney <emeaney[AT]cisco.com>
Dietmar Petras <DPetras[AT]ELSA.de>
Fred Reimer <fwr[AT]ga.prestige.net>
Florian Lohoff <flo[AT]rfc822.org>
Jochen Friedrich <jochen+ethereal[AT]scram.de>
Paul Welchinski <paul.welchinski[AT]telusplanet.net>
Doug Nazar <nazard[AT]dragoninc.on.ca>
Andreas Sikkema <h323 [AT] ramdyne.nl>
Mark Muhlestein <mmm[AT]netapp.com>
Graham Bloice <graham.bloice[AT]trihedral.com>
Ralf Schneider <ralf.schneider[AT]alcatel.se>
Yaniv Kaul <ykaul[AT]netvision.net.il>
Paul Ionescu <paul[AT]acorp.ro>
Mark Burton <markb[AT]ordern.com>
Stefan Raab <sraab[AT]cisco.com>
Mark Clayton <clayton[AT]shore.net>
Michael Rozhavsky <mike[AT]tochna.technion.ac.il>
Dug Song <dugsong[AT]monkey.org>
Michael Tüxen <tuexen [AT] fh-muenster.de>
Bruce Korb <bkorb[AT]sco.com>
Jose Pedro Oliveira <jpo[AT]di.uminho.pt>
David Frascone <dave[AT]frascone.com>
Peter Kjellerstedt <pkj[AT]axis.com>
Phil Techau <phil_t[AT]altavista.net>
Wes Hardaker <hardaker[AT]users.sourceforge.net>
Robert Tsai <rtsai[AT]netapp.com>
Craig Metz <cmetz[AT]inner.net>
Per Flock <per.flock[AT]axis.com>
Jack Keane <jkeane[AT]OpenReach.com>
Brian Wellington <bwelling[AT]xbill.org>
Santeri Paavolainen <santtu[AT]ssh.com>
Ulrich Kiermayr <uk[AT]ap.univie.ac.at>
Neil Hunter <neil.hunter[AT]energis-squared.com>
Ralf Holzer <ralf[AT]well.com>
Craig Rodrigues <rodrigc [AT] attbi.com>
Ed Warnicke <hagbard[AT]physics.rutgers.edu>
Johan Jorgensen <johan.jorgensen[AT]axis.com>
Frank Singleton <frank.singleton[AT]ericsson.com>
Kevin Shi <techishi[AT]ms22.hinet.net>
Mike Frisch <mfrisch[AT]isurfer.ca>
Burke Lau <burke_lau[AT]agilent.com>
Martti Kuparinen <martti.kuparinen[AT]iki.fi>
David Hampton <dhampton[AT]mac.com>
Kent Engström <kent[AT]unit.liu.se>
Ronnie Sahlberg <ronnie_sahlberg[AT]ozemail.com.au>
Borosa Tomislav <tomislav.borosa[AT]SIEMENS.HR>
Alexandre P. Ferreira <alexandref[AT]tcoip.com.br>
Simharajan Srishylam <Simharajan.Srishylam[AT]netapp.com>
Greg Kilfoyle <gregk[AT]redback.com>
James E. Flemer <jflemer[AT]acm.jhu.edu>
Peter Lei <peterlei[AT]cisco.com>
Thomas Gimpel <thomas.gimpel[AT]ferrari.de>
Albert Chin <china[AT]thewrittenword.com>
Charles Levert <charles[AT]comm.polymtl.ca>
Todd Sabin <tas[AT]webspan.net>
Eduardo Pérez Ureta <eperez[AT]dei.inf.uc3m.es>
Martin Thomas <martin_a_thomas[AT]yahoo.com>
Hartmut Mueller <hartmut[AT]wendolene.ping.de>
Michal Melerowicz <Michal.Melerowicz[AT]nokia.com>
Hannes Gredler <hannes[AT]juniper.net>
Inoue <inoue[AT]ainet.or.jp>
Olivier Biot <ethereal[AT]tiscali.be>
Patrick Wolfe <pjw[AT]zocalo.cellular.ameritech.com>
Martin Held <Martin.Held[AT]icn.siemens.de>
Riaan Swart <rswart[AT]cs.sun.ac.za>
Christian Lacunza <celacunza[AT]gmx.net>
Scott Renfro <scott[AT]renfro.org>
Juan Toledo <toledo[AT]users.sourceforge.net>
Jean-Christian Pennetier <jeanchristian.pennetier[AT]rd.francetelecom.fr>
Jian Yu <bgp4news[AT]yahoo.com>
Eran Mann <emann[AT]opticalaccess.com>
Andy Hood <ajhood [AT] fl.net.au>
Randy McEoin <rmceoin[AT]pe.net>
Edgar Iglesias <edgar.iglesias[AT]axis.com>
Martina Obermeier <Martina.Obermeier[AT]icn.siemens.de>
Javier Achirica <achirica[AT]ttd.net>
B. Johannessen <bob[AT]havoq.com>
Thierry Pelle <thierry.pelle[AT]laposte.net>
Francisco Javier Cabello <fjcabello[AT]vtools.es>
Laurent Rabret <laurent.rabret[AT]rd.francetelecom.fr>
nuf si <gnippiks[AT]yahoo.com>
Jeff Morriss <jeff.morriss[AT]ulticom.com>
Aamer Akhter <aakhter[AT]cisco.com>
Pekka Savola <pekkas[AT]netcore.fi>
David Eisner <cradle[AT]Glue.umd.edu>
Steve Dickson <steved[AT]talarian.com>
Markus Seehofer <mseehofe[AT]nt.hirschmann.de>
Lee Berger <lberger[AT]roy.org>
Motonori Shindo <mshindo[AT]mshindo.net>
Terje Krogdahl <tekr[AT]nextra.com>
Jean-Francois Mule <jfm[AT]cablelabs.com>
Thomas Wittwer <thomas.wittwer[AT]iclip.ch>
Matthias Nyffenegger <matthias.nyffenegger[AT]iclip.ch>
Palle Lyckegaard <Palle[AT]lyckegaard.dk>
Nicolas Balkota <balkota[AT]mac.com>
Tom Uijldert <Tom.Uijldert[AT]cmg.nl>
Akira Endoh <endoh[AT]netmarks.co.jp>
Graeme Hewson <graeme.hewson[AT]oracle.com>
Pasi Eronen <pe[at]iki.fi>
Georg von Zezschwitz <gvz[AT]2scale.net>
Steffen Weinreich <steve[AT]weinreich.org>
Marc Milgram <ethereal[AT]mmilgram.NOSPAMmail.net>
Gordon McKinney <gordon[AT]night-ray.com>
Pavel Novotny <Pavel.Novotny[AT]icn.siemens.de>
Shinsuke Suzuki <suz[AT]kame.net>
Andrew C. Feren <acferen[AT]yahoo.com>
Tomas Kukosa <tomas.kukosa [AT] siemens.com>
Andreas Stockmeier <a.stockmeier[AT]avm.de>
Pekka Nikander <pekka.nikander[AT]nomadiclab.com>
Hamish Moffatt <hamish[AT]cloud.net.au>
Kazushi Sugyo <k-sugyou[AT]nwsl.mesh.ad.jp>
Tim Potter <tpot[AT]samba.org>
Raghu Angadi <rangadi[AT]inktomi.com>
Taisuke Sasaki <sasaki[AT]soft.net.fujitsu.co.jp>
Tim Newsham <newsham[AT]lava.net>
Tom Nisbet <Tnisbet[AT]VisualNetworks.com>
Darren New <dnew[AT]san.rr.com>
Pavel Mores <pvl[AT]uh.cz>
Bernd Becker <bb[AT]bernd-becker.de>
Heinz Prantner <Heinz.Prantner[AT]radisys.com>
Irfan Khan <ikhan[AT]qualcomm.com>
Jayaram V.R <vjayar[AT]cisco.com>
Dinesh Dutt <ddutt[AT]cisco.com>
Nagarjuna Venna <nvenna[AT]Brixnet.com>
Jirka Novak <j.novak[AT]netsystem.cz>
Ricardo Barroetaveña <rbarroetavena[AT]veufort.com>
Alan Harrison <alanharrison[AT]mail.com>
Mike Frantzen <frantzen[AT]w4g.org>
Charlie Duke <cduke[AT]fvc.com>
Alfred Arnold <Alfred.Arnold[AT]elsa.de>
Dermot Bradley <dermot.bradley[AT]openwave.com>
Adam Sulmicki <adam[AT]cfar.umd.edu>
Kari Tiirikainen <kari.tiirikainen[AT]nokia.com>
John Mackenzie <John.A.Mackenzie[AT]t-online.de>
Peter Valchev <pvalchev[AT]openbsd.org>
Alex Rozin <Arozin[AT]mrv.com>
Jouni Malinen <jkmaline[AT]cc.hut.fi>
Paul E. Erkkila <pee[AT]erkkila.org>
Jakob Schlyter <jakob[AT]openbsd.org>
Jim Sienicki <sienicki[AT]issanni.com>
Steven French <sfrench[AT]us.ibm.com>
Diana Eichert <deicher[AT]sandia.gov>
Blair Cooper <blair[AT]teamon.com>
Kikuchi Ayamura <ayamura[AT]ayamura.org>
Didier Gautheron <dgautheron[AT]magic.fr>
Phil Williams <csypbw[AT]comp.leeds.ac.uk>
Kevin Humphries <khumphries[AT]networld.com>
Erik Nordström <erik.nordstrom[AT]it.uu.se>
Devin Heitmueller <dheitmueller[AT]netilla.com>
Chenjiang Hu <chu[AT]chiaro.com>
Kan Sasaki <sasaki[AT]fcc.ad.jp>
Stefan Wenk <stefan.wenk[AT]gmx.at>
Ruud Linders <ruud[AT]lucent.com>
Andrew Esh <Andrew.Esh[AT]tricord.com>
Greg Morris <GMORRIS[AT]novell.com>
Dirk Steinberg <dws[AT]dirksteinberg.de>
Kari Heikkila <kari.o.heikkila[AT]nokia.com>
Olivier Dreux <Olivier.Dreux[AT]alcatel.fr>
Michael Stiller <ms[AT]2scale.net>
Antti Tuominen <ajtuomin[AT]tml.hut.fi>
Martin Gignac <lmcgign[AT]mobilitylab.net>
John Wells <wells[AT]ieee.org>
Loic Tortay <tortay[AT]cc.in2p3.fr>
Steve Housley <Steve_Housley[AT]eur.3com.com>
Peter Hawkins <peter[AT]hawkins.emu.id.au>
Bill Fumerola <billf[AT]FreeBSD.org>
Chris Waters <chris[AT]waters.co.nz>
Solomon Peachy <pizza[AT]shaftnet.org>
Jaime Fournier <Jaime.Fournier [AT] hush.com>
Markus Steinmann <ms[AT]seh.de>
Tsutomu Mieno <iitom[AT]utouto.com>
Yasuhiro Shirasaki <yasuhiro[AT]gnome.gr.jp>
Anand V. Narwani <anand[AT]narwani.org>
Christopher K. St. John <cks[AT]distributopia.com>
Nix <nix[AT]esperi.demon.co.uk>
Liviu Daia <Liviu.Daia[AT]imar.ro>
Richard Urwin <richard[AT]soronlin.org.uk>
Prabhakar Krishnan <Prabhakar.Krishnan[AT]netapp.com>
Jim McDonough <jmcd[AT]us.ibm.com>
Sergei Shokhor <sshokhor[AT]uroam.com>
Hidetaka Ogawa <ogawa[AT]bs2.qnes.nec.co.jp>
Jan Kratochvil <short[AT]ucw.cz>
Alfred Koebler <ak[AT]icon-sult.de>
Vassilii Khachaturov <Vassilii.Khachaturov[AT]comverse.com>
Bill Studenmund <wrstuden[AT]wasabisystems.com>
Brian Bruns <camber[AT]ais.org>
Flavio Poletti <flavio[AT]polettix.it>
Marcus Haebler <haeblerm[AT]yahoo.com>
Ulf Lamping <ulf.lamping[AT]web.de>
Matthew Smart <smart[AT]monkey.org>
Luke Howard <lukeh[AT]au.padl.com>
PC Drew <drewpc[AT]ibsncentral.com>
Renzo Tomas <renzo.toma [AT] xs4all.nl>
Clive A. Stubbings <eth [AT] vjet.demon.co.uk>
Steve Langasek <vorlon [AT] netexpress.net>
Brad Hards <bhards[AT]bigpond.net.au>
cjs 2895 <cjs2895[AT]hotmail.com>
Lutz Jaenicke <Lutz.Jaenicke [AT] aet.TU-Cottbus.DE>
Senthil Kumar Nagappan <sknagappan [AT] yahoo.com>
Jason House <jhouse [AT] mitre.org>
Peter Fales <psfales [AT] lucent.com>
Fritz Budiyanto <fritzb88 [AT] yahoo.com>
Jean-Baptiste Marchand <Jean-Baptiste.Marchand [AT] hsc.fr>
Andreas Trauer <andreas.trauer [AT] siemens.com>
Ronald Henderson <Ronald.Henderson [AT] CognicaseUSA.com>
Brian Ginsbach <ginsbach [AT] cray.com>
Dave Richards <d_m_richards [AT] attbi.com>
Martin Regner <martin.regner [AT] chello.se>
Jason Greene <jason [AT] inetgurus.net>
Marco Molteni <mmolteni [AT] cisco.com>
James Harris <jharris [AT] fourhorsemen.org>
rmkml <rmkml [AT] wanadoo.fr>
Anders Broman <anders.broman [AT] ericsson.com>
Christian Falckenberg <christian.falckenberg [AT] nortelnetworks.com>
Huagang Xie <xie [AT] lids.org>
cfs 2895 <cjs2895 [AT] hotmail.com>
Pasi Kovanen <Pasi.Kovanen [AT] tahoenetworks.fi>
Teemu Rinta-aho <teemu.rinta-aho [AT] nomadiclab.com>
Martijn Schipper <martijn.schipper [AT] intersil.com>
Wayne Parrott <wayne_p [AT] pacific.net.au>
Laurent Meyer <laurent.meyer6 [AT] wanadoo.fr>
Lars Roland <Lars.Roland [AT] gmx.net>
Miha Jemec <m.jemec [AT] iskratel.si>
Markus Friedl <markus [AT] openbsd.org>
Todd Montgomery <tmontgom [AT] tibco.com>
emre <emre [AT] flash.net>
Stephen Shelley <steve.shelley [AT] attbi.com>
Erwin Rol <erwin [AT] erwinrol.com>
Duncan Laurie <duncan [AT] sun.com>
Tony Schene <schene [AT] pcisys.net>
Matthijs Melchior <mmelchior [AT] xs4all.nl>
Garth Bushell <gbushell [AT] elipsan.com>
Mark C. Brown <mbrown [AT] nosila.net>
Can Erkin Acar <canacar [AT] eee.metu.edu.tr>
Martin Warnes <martin.warnes [AT] ntlworld.com>
J Bruce Fields <bfields [AT] fieldses.org>
tz <tz1 [AT] mac.com>
Jeff Liu <jqliu [AT] broadcom.com>
Niels Koot <Niels.Koot [AT] logicacmg.com>
Lionel Ains <lains [AT] gmx.net>
Joakim Wiberg <jow [AT] hms-networks.com>
Jeff Rizzo <riz [AT] boogers.sf.ca.us>
Christoph Wiest <ch.wiest [AT] tesionmail.de>
Xuan Zhang <xz [AT] aemail4u.com>
Thierry Martin <thierry.martin [AT] accellent-group.com>
Oleg Terletsky <oleg.terletsky [AT] comverse.com>
Michael Lum <mlum [AT] telostech.com>
Shiang-Ming Huang <smhuang [AT] pcs.csie.nctu.edu.tw>
Tony Lindstrom <tony.lindstrom [AT] ericsson.com>
Niklas Ogren <niklas.ogren [AT] 71.se>
Jesper Peterson <jesper [AT] endace.com>
Giles Scott <gscott [AT] arubanetworks.com>
Vincent Jardin <vincent.jardin [AT] 6wind.com>
Jean-Michel Fayard <jean-michel.fayard [AT] moufrei.de>
Josef Korelus <jkor [AT] quick.cz>
Brian K. Teravskis <Brian_Teravskis [AT] Cargill.com>
Nathan Jennings <njen [AT] bellsouth.net>
Hans Viens <hviens [AT] mediatrix.com>
Kevin A. Noll <knoll [AT] poss.com>
Emanuele Caratti <wiz [AT] libero.it>
Graeme Reid <graeme.reid [AT] norwoodsystems.com>
Lars Ruoff <lars.ruoff [AT] sxb.bsf.alcatel.fr>
Samuel Qu <samuel.qu [AT] utstar.com>
Baktha Muralitharan <muralidb [AT] cisco.com>
Loïc Minier <lool [AT] dooz.org>
Marcel Holtmann <marcel [AT] holtmann.org>
Scott Emberley <scotte [AT] netinst.com>
Brian Fundakowski Feldman <bfeldman [AT] fla.fujitsu.com>
Yuriy Sidelnikov <ysidelnikov [AT] hotmail.com>
Matthias Drochner <M.Drochner [AT] fz-juelich.de>
Dave Sclarsky <dave_sclarsky [AT] cnt.com>
Scott Hovis <scott.hovis [AT] ums.msfc.nasa.gov>
David Fort <david.fort [AT] irisa.fr>
Martijn Schipper <mschipper [AT] globespanvirata.com>
Felix Fei <felix.fei [AT] utstar.com>
Christoph Neusch <christoph.neusch [AT] nortelnetworks.com>
Jan Kiszka <jan.kiszka [AT] web.de>
Joshua Craig Douglas <jdouglas [AT] enterasys.com>
Dick Gooris <gooris [AT] lucent.com>
Michael Shuldman <michaels [AT] inet.no>
Tadaaki Nagao <nagao [AT] iij.ad.jp>
Aaron Woo <woo [AT] itd.nrl.navy.mil>
Chris Wilson <chris [AT] mxtelecom.com>
Rolf Fiedler <Rolf.Fiedler [AT] Innoventif.com>
Alastair Maw <ethereal [AT] almaw.com>
Sam Leffler <sam [AT] errno.com>
Martin Mathieson <martin [AT] arca-technologies.com>
Christian Wagner <Christian.Wagner [AT] stud.uni-karlsruhe.de>
Edwin Calo <calo [AT] fusemail.com>
Ian Schorr <ischorr [AT] comcast.net>
Rowan McFarland <rmcfarla[AT]cisco.com>
John Engelhart <johne [AT] zang.com>
Ryuji Somegawa <ryuji-so [AT] is.aist-nara.ac.jp>
metatech <metatech [AT] flashmail.com>
Brian Wheeler <Brian.Wheeler [AT] arrisi.com>
Josh Bailey <joshbailey [AT] lucent.com>
Jelmer Vernooij <jelmer [AT] samba.org>
Duncan Sargeant <dunc-ethereal-dev [AT] rcpt.to>
Love Hörnquist Åstrand <lha [AT] it.su.se>
Lukas Pokorny <maskis [AT] seznam.cz>
Carlos Pignataro <cpignata [AT] cisco.com>
Thomas Anders <thomas.anders [AT] blue-cable.de>
Rich Coe <Richard.Coe [AT] med.ge.com>
Dominic Béchaz <bdo [AT] zhwin.ch>
Richard van der Hoff <richardv [AT] mxtelecom.com>
Shaun Jackman <sjackman [AT] telus.net>
Jon Oberheide <jon [AT] oberheide.org>
Henry Ptasinski <henryp [AT] broadcom.com>
Roberto Morro <Roberto.Morro [AT] TILAB.COM>
Chris Maynard <Christopher.Maynard [AT] GTECH.COM>
SEKINE Hideki <sekineh [AT] gf7.so-net.ne.jp>
Jeff Connelly <shellreef+mp2p [AT] gmail.com>
M. Ortega y Strupp <moys@loplof.de>
And assorted fixes and enhancements by the people listed above and by:
Pavel Roskin <proski [AT] gnu.org>
Georgi Guninski <guninski [AT] guninski.com>
Jason Copenhaver <jcopenha [AT] typedef.org>
Eric Perie <eric.perie [AT] colubris.com>
David Yon <yon [AT] tacticalsoftware.com>
Marcio Franco <franco.marcio [AT] rd.francetelecom.fr>
Kaloian Stoilov <kalkata [AT] yahoo.com>
Steven Lass <stevenlass [AT] mail.com>
Gregory Stark <gsstark [AT] mit.edu>
Darren Steele <steeley [AT] steeley.co.uk>
<smhuang [AT] pcs.csie.nctu.edu.tw>
Michael Kopp <michael.kopp [AT] isarnet.de>
Bernd Leibing <bernd.leibing [AT] kiz.uni-ulm.de>
Chris Heath <chris [AT] heathens.co.nz>
Gisle Vanem <giva [AT] bgnett.no>
Ritchie <ritchie [AT] tipsybottle.com>
Aki Immonen <aki.immonen [AT] golftalma.fi>
David E. Weekly <david [AT] weekly.org>
Steve Ford <sford [AT] geeky-boy.com>
Masaki Chikama <masaki-c [AT] is.aist-nara.ac.jp>
Mohammad Hanif <mhanif [AT] nexthop.com>
Eric Wedel <ewedel [AT] bluearc.com>
Reinhard Speyerer <rspmn [AT] arcor.de>
Patrick Kursawe <phosphan [AT] gentoo.org>
Arsen Chaloyan <achaloyan [AT] yahoo.com>
<melerski [AT] poczta.onet.pl>
Arnaud Jacques <webmaster [AT] securiteinfo.com>
D. Manzella <manzella [AT] lucent.com>
Jari Mustajarvi <jari.mustajarvi [AT] nokia.com>
Joost Yervante Damad <Joost.Damad [AT] siemens.com>
Pierre Juhen <pierre.juhen [AT] wanadoo.fr>
David Richards <drichards [AT] alum.mit.edu>
Shusaku Ueda <ueda [AT] sra.co.jp>
Jonathan Perkins <jonathan.perkins [AT] ipaccess.com>
Holger Schurig <h.schurig [AT] mn-logistik.de>
Peter J. Creath <peter-ethereal [AT] creath.net>
Magnus Hansson <mah [AT] hms.se>
Pavel Kankovsky <kan [AT] dcit.cz>
Nick Black <dank [AT] reflexsecurity.com>
Bill Guyton <guyton [AT] bguyton.com>
Chernishov Yury <Chernishov [AT] iskrauraltel.ru>
Thomas Palmer <Thomas.Palmer [AT] Gunter.AF.mil>
Clinton Work <clinton [AT] scripty.com>
Joe Marcus Clarke <marcus [AT] marcuscom.com>
Kendy Kutzner <kutzner[AT]tm.uka.de>
James H. Cloos Jr. <cloos [AT] jhcloos.com>
Tim Farley <tfarley[AT]iss.net>
Daniel Thompson <daniel.thompson[AT]st.com>
Chris Jepeway <thai-dragon[AT]eleven29.com>
Matthew Bradley <matthew.bradley [AT] cnsonline.net>
Nathan Alger <nathan [AT] wasted.com>
Stas Grabois <sagig [AT] radware.com>
Ainsley Pereira <APereira [AT] Witness.com>
Philippe Mazeau <philippe.mazeau [AT] swissvoice.net>
Carles Kishimoto <ckishimo [AT] ac.upc.es>
Dennis Lim <Dennis.Lim [AT] motorola.com>
<postadal [AT] suse.cz>
Martin van der Werff <martin [AT] vanderwerff.org>
Marco van den Bovenkamp <marco [AT] linuxgoeroe.dhs.org>
Ming Zhang <mingz [AT] ele.uri.edu>
Kelly Byrd <kbyrd-ethereal [AT] memcpy.com>
Neil Piercy <Neil.Piercy [AT] ipaccess.com>
Alain Magloire <alainm[AT]rcsm.ece.mcgill.ca> was kind enough to
give his permission to use his version of snprintf.c.
Dan Lasley <dlasley[AT]promus.com> gave permission for his dumpit()
hex-dump
routine to be used.
Mattia Cazzola <mattiac[AT]alinet.it> provided a patch to the hex dump
display routine.
We use the exception module from Kazlib, a C library written by
Kaz Kylheku <kaz[AT]ashi.footprints.net>. Thanks goes to him for his
well-written library. The Kazlib home page can be found at
http://users.footprints.net/~kaz/kazlib.html
Henrik Brix Andersen <brix[AT]gimp.org> gave permission for his webbrowser
calling routine to be used.