File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / hping2 / docs / hping2.8
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 22:11:37 2012 UTC (13 years, 1 month ago) by misho
Branches: hping2, MAIN
CVS tags: v2_0_0rc3p7, v2_0_0rc3p5, v2_0_0rc3p4, v2_0_0rc3p0, v2_0_0rc3, HEAD
hping2

    1: .TH HPING2 8 "2001 Aug 14"
    2: .SH NAME
    3: hping2 \- send (almost) arbitrary TCP/IP packets to network hosts
    4: .SH SYNOPSIS
    5: .B hping2
    6: [
    7: .B \-hvnqVDzZ012WrfxykQbFSRPAUXYjJBuTG
    8: ] [
    9: .B \-c
   10: .I count
   11: ] [
   12: .B \-i
   13: .I wait
   14: ] [
   15: .B \-\-fast
   16: ] [
   17: .B \-I
   18: .I interface
   19: ] [
   20: .B \-9
   21: .I signature
   22: ] [
   23: .B \-a
   24: .I host
   25: ] [
   26: .B \-t
   27: .I ttl
   28: ] [
   29: .B \-N
   30: .I ip id
   31: ] [
   32: .B \-H
   33: .I ip protocol
   34: ] [
   35: .B \-g
   36: .I fragoff
   37: ] [
   38: .B \-m
   39: .I mtu
   40: ] [
   41: .B \-o
   42: .I tos
   43: ] [
   44: .B \-C
   45: .I icmp type
   46: ] [
   47: .B \-K
   48: .I icmp code
   49: ] [
   50: .B \-s
   51: .I source port
   52: ] [
   53: .B \-p[+][+]
   54: .I dest port
   55: ] [
   56: .B \-w
   57: .I tcp window
   58: ] [
   59: .B \-O
   60: .I tcp offset
   61: ] [
   62: .B \-M
   63: .I tcp sequence number
   64: ] [
   65: .B \-L
   66: .I tcp ack
   67: ] [
   68: .B \-d
   69: .I data size
   70: ] [
   71: .B \-E
   72: .I filename
   73: ] [
   74: .B \-e
   75: .I signature
   76: ] [
   77: .B \-\-icmp\-ipver
   78: .I version
   79: ] [
   80: .B \-\-icmp\-iphlen
   81: .I length
   82: ] [
   83: .B \-\-icmp\-iplen
   84: .I length
   85: ] [
   86: .B \-\-icmp\-ipid
   87: .I id
   88: ] [
   89: .B \-\-icmp\-ipproto
   90: .I protocol
   91: ] [
   92: .B \-\-icmp\-cksum
   93: .I checksum
   94: ] [
   95: .B \-\-icmp\-ts
   96: ] [
   97: .B \-\-icmp\-addr
   98: ] [
   99: .B \-\-tcpexitcode
  100: ] [
  101: .B \-\-tcp-timestamp
  102: ] [
  103: .B \-\-tr-stop
  104: ] [
  105: .B \-\-tr-keep-ttl
  106: ] [
  107: .B \-\-tr-no-rtt
  108: ] [
  109: .B \-\-rand-dest
  110: ] [
  111: .B \-\-rand-source
  112: ]
  113: hostname
  114: .br
  115: .ad
  116: .SH DESCRIPTION
  117: hping2 is a network tool able to send custom TCP/IP packets and to
  118: display target replies like ping program does with ICMP replies. hping2
  119: handle fragmentation, arbitrary packets body and size and can be used in
  120: order to transfer files encapsulated under supported protocols. Using
  121: hping2 you are able to perform at least the following stuff:
  122: 
  123:  - Test firewall rules
  124:  - Advanced port scanning
  125:  - Test net performance using different protocols,
  126:    packet size, TOS (type of service) and fragmentation.
  127:  - Path MTU discovery
  128:  - Transferring files between even really fascist firewall
  129:    rules.
  130:  - Traceroute-like under different protocols.
  131:  - Firewalk-like usage.
  132:  - Remote OS fingerprinting.
  133:  - TCP/IP stack auditing.
  134:  - A lot of others.
  135: 
  136: .IR "It's also a good didactic tool to learn TCP/IP" .
  137: hping2 is developed and maintained by antirez@invece.org and is
  138: licensed under GPL version 2. Development is open so you can send
  139: me patches, suggestion and affronts without inhibitions.
  140: .SH HPING SITE
  141: primary site at
  142: .BR http://www.hping.org .
  143: You can found both the stable release and the instruction
  144: to download the latest source code at http://www.hping.org/download.html
  145: .SH BASE OPTIONS
  146: .TP
  147: .I -h --help
  148: Show an help screen on standard output, so you can pipe to less.
  149: .TP
  150: .I -v --version
  151: Show version information and API used to access to data link layer,
  152: .I linux sock packet
  153: or
  154: .IR libpcap.
  155: .TP
  156: .I -c --count count
  157: Stop after sending (and receiving)
  158: .I count
  159: response packets. After last packet was send hping2 wait COUNTREACHED_TIMEOUT
  160: seconds target host replies. You are able to tune COUNTREACHED_TIMEOUT editing
  161: hping2.h
  162: .TP
  163: .I -i --interval
  164: Wait
  165: the specified number of seconds or micro seconds between sending each packet.
  166: --interval X set
  167: .I wait
  168: to X seconds, --interval uX set
  169: .I wait
  170: to X micro seconds.
  171: The default is to wait
  172: one second between each packet. Using hping2 to transfer files tune this
  173: option is really important in order to increase transfer rate. Even using
  174: hping2 to perform idle/spoofing scanning you should tune this option, see
  175: .B HPING2-HOWTO
  176: for more information.
  177: .TP
  178: .I --fast
  179: Alias for -i u10000. Hping will send 10 packets for second.
  180: .TP
  181: .I --faster
  182: Alias for -i u1. Faster then --fast ;) (but not as fast as your computer can send packets due to the signal-driven design).
  183: .TP
  184: .I -n --numeric
  185: Numeric output only, No attempt will be made to lookup symbolic names for host addresses.
  186: .TP
  187: .I -q --quiet
  188: Quiet output. Nothing is displayed except the summary lines at
  189: startup time and when finished.
  190: .TP
  191: .I -I --interface interface name
  192: By default on linux and BSD systems hping2 uses default routing interface.
  193: In other systems or when there is no default route
  194: hping2 uses the first non-loopback interface.
  195: However you are able to force hping2 to use the interface you need using
  196: this option. Note: you don't need to specify the whole name, for
  197: example -I et will match eth0 ethernet0 myet1 et cetera. If no interfaces
  198: match hping2 will try to use lo.
  199: .TP
  200: .I -V --verbose
  201: Enable verbose output. TCP replies will be shown as follows:
  202: 
  203: len=46 ip=192.168.1.1 flags=RA DF seq=0 ttl=255 id=0 win=0 rtt=0.4 ms
  204: tos=0 iplen=40 seq=0 ack=1380893504 sum=2010 urp=0 
  205: .TP
  206: .I -D --debug
  207: Enable debug mode, it's useful when you experience some problem with
  208: hping2. When debug mode is enabled you will get more information about
  209: .B interface detection, data link layer access, interface settings, options
  210: .B parsing, fragmentation, HCMP protocol
  211: and other stuff.
  212: .TP
  213: .I -z --bind
  214: Bind CTRL+Z to
  215: .B time to live (TTL)
  216: so you will able to increment/decrement ttl of outgoing packets pressing
  217: CTRL+Z once or twice.
  218: .TP
  219: .I -Z --unbind
  220: Unbind CTRL+Z so you will able to stop hping2.
  221: .SH PROTOCOL SELECTION
  222: Default protocol is TCP, by default hping2 will send tcp headers to target
  223: host's port 0 with a winsize of 64 without any tcp flag on. Often this
  224: is the best way to do an 'hide ping', useful when target is behind
  225: a firewall that drop ICMP. Moreover a tcp null-flag to port 0 has a good
  226: probability of not being logged.
  227: .TP
  228: .I -0 --rawip
  229: RAW IP mode, in this mode hping2 will send IP header with data
  230: appended with --signature and/or --file, see also --ipproto that
  231: allows you to set the ip protocol field.
  232: .TP
  233: .I -1 --icmp
  234: ICMP mode, by default hping2 will send ICMP echo-request, you can set
  235: other ICMP type/code using
  236: .B --icmptype --icmpcode
  237: options.
  238: .TP
  239: .I -2 --udp
  240: UDP mode, by default hping2 will send udp to target host's port 0.
  241: UDP header tunable options are the following:
  242: .B --baseport, --destport, --keep.
  243: .TP
  244: .I -8 --scan
  245: Scan mode, the option expects an argument that describes groups of
  246: ports to scan. port groups are comma separated: a number describes
  247: just a single port, so 1,2,3 means port 1, 2 and 3. ranges are specified
  248: using a start-end notation, like 1-1000, that tell hping to scan ports between 1 and 1000 (included). the special word
  249: .B all
  250: is an alias for 0-65535, while the special word
  251: .B known
  252: includes all the ports listed in /etc/services.
  253: .br
  254: Groups can be combined, so the following command line will
  255: scan ports between 1 and 1000 AND port 8888 AND ports listed in /etc/services:
  256: .B hping --scan 1-1000,8888,known -S target.host.com
  257: .br
  258: Groups can be negated (subtracted) using a ! character as prefix,
  259: so the following command line will scan all the ports NOT listed
  260: in /etc/services in the range 1-1024:
  261: .B hping --scan '1-1024,!known' -S target.host.com
  262: .br
  263: Keep in mind that while hping seems much more like a port scanner in
  264: this mode, most of the hping switches are still honored, so for example to
  265: perform a SYN scan you need to specify the
  266: .B -S
  267: option, you can change the TCP windows size, TTL, control the
  268: IP fragmentation as usually, and so on. The only real difference is that
  269: the standard hping behaviors are encapsulated into a scanning
  270: algorithm.
  271: .br
  272: .BR "Tech note" :
  273: The scan mode uses a two-processes design, with shared memory for synchronization. The scanning algorithm is still not optimal, but already quite fast.
  274: .br
  275: .BR Hint :
  276: unlike most scanners, hping shows some interesting info about received
  277: packets, the IP ID, TCP win, TTL, and so on, don't forget to look
  278: at this additional information when you perform a scan! Sometimes they
  279: shows interesting details.
  280: .TP
  281: .I -9 --listen signature
  282: HPING2 listen mode, using this option hping2 waits for packet that contain
  283: .I signature
  284: and dump from
  285: .I signature
  286: end to packet's end. For example if hping2 --listen TEST reads a packet
  287: that contain
  288: .B 234-09sdflkjs45-TESThello_world
  289: it will display
  290: .BR hello_world .
  291: .SH IP RELATED OPTIONS
  292: .TP
  293: .I -a --spoof hostname
  294: Use this option in order to set a fake IP source address, this option
  295: ensures that target will not gain your real address. However replies
  296: will be sent to spoofed address, so you will can't see them. In order
  297: to see how it's possible to perform spoofed/idle scanning see the
  298: .BR HPING2-HOWTO .
  299: .TP
  300: .I --rand-source
  301: This option enables the
  302: .BR "random source mode" .
  303: hping will send packets with random source address. It is interesting
  304: to use this option to stress firewall state tables, and other
  305: per-ip basis dynamic tables inside the TCP/IP stacks and firewall
  306: software.
  307: .TP
  308: .I --rand-dest
  309: This option enables the
  310: .BR "random destination mode" .
  311: hping will send the packets to random addresses obtained following
  312: the rule you specify as the target host. You need to specify
  313: a numerical IP address as target host like
  314: .BR 10.0.0.x .
  315: All the occurrences of
  316: .B x
  317: will be replaced with a random number in the range 0-255. So to obtain
  318: Internet IP addresses in the whole IPv4 space use something like
  319: .BR "hping x.x.x.x --rand-dest" .
  320: If you are not sure about what kind of addresses your rule is generating
  321: try to use the
  322: .B --debug
  323: switch to display every new destination address generated.
  324: When this option is turned on, matching packets will be accept from all
  325: the destinations.
  326: .br
  327: .BR Warning :
  328: when this option is enabled hping can't detect the right outgoing
  329: interface for the packets, so you should use the
  330: .B --interface
  331: option to select the desired outgoing interface.
  332: .TP
  333: .I -t --ttl time to live
  334: Using this option you can set
  335: .B TTL (time to live)
  336: of outgoing packets, it's likely that you will use this with
  337: .B --traceroute
  338: or
  339: .B --bind
  340: options. If in doubt try
  341: .BR "" "`" "hping2 some.host.com -t 1 --traceroute" "'."
  342: .TP
  343: .I -N --id
  344: Set ip->id field. Default id is random but if fragmentation is turned on
  345: and id isn't specified it will be
  346: .BR "getpid() & 0xFF" ,
  347: to implement a better solution is in TODO list.
  348: .TP
  349: .I -H --ipproto
  350: Set the ip protocol in RAW IP mode.
  351: .TP
  352: .I -W --winid
  353: id from Windows* systems before Win2k has different byte ordering, if this
  354: option is enable
  355: hping2 will properly display id replies from those Windows.
  356: .TP
  357: .I -r --rel
  358: Display id increments instead of id. See the
  359: .B HPING2-HOWTO
  360: for more information. Increments aren't computed as id[N]-id[N-1] but
  361: using packet loss compensation. See relid.c for more information.
  362: .TP
  363: .I -f --frag
  364: Split packets in more fragments, this may be useful in order to test
  365: IP stacks fragmentation performance and to test if some
  366: packet filter is so weak that can be passed using tiny fragments
  367: (anachronistic). Default 'virtual mtu' is 16 bytes. see also
  368: .I --mtu
  369: option.
  370: .TP
  371: .I -x --morefrag
  372: Set more fragments IP flag, use this option if you want that target
  373: host send an
  374: .BR "ICMP time-exceeded during reassembly" .
  375: .TP
  376: .I -y --dontfrag
  377: Set don't fragment IP flag, this can be used to perform
  378: .BR "MTU path discovery" .
  379: .TP
  380: .I -g --fragoff fragment offset value
  381: Set the fragment offset.
  382: .TP
  383: .I -m --mtu mtu value
  384: Set different 'virtual mtu' than 16 when fragmentation is enabled. If
  385: packets size is greater that 'virtual mtu' fragmentation is automatically
  386: turned on.
  387: .TP
  388: .I -o --tos hex_tos
  389: Set
  390: .BR "Type Of Service (TOS)" ,
  391: for more information try
  392: .BR "--tos help" .
  393: .TP
  394: .I -G --rroute
  395: Record route. Includes the RECORD_ROUTE option in each packet sent and
  396: displays the route buffer of returned packets. Note that the IP header
  397: is only large enough for nine such routes. Many hosts ignore or discard
  398: this option. Also note that using hping you are able to use record route
  399: even if target host filter ICMP. Record route is an IP option, not
  400: an ICMP option, so you can use record route option even in TCP and UDP
  401: mode.
  402: .SH ICMP RELATED OPTIONS
  403: .TP
  404: .I -C --icmptype type
  405: Set icmp type, default is
  406: .B ICMP echo request
  407: (implies --icmp).
  408: .TP
  409: .I -K --icmpcode code
  410: Set icmp code, default is 0 (implies --icmp).
  411: .TP
  412: .I --icmp-ipver
  413: Set IP version of IP header contained into ICMP data, default is 4.
  414: .TP
  415: .I --icmp-iphlen
  416: Set IP header length of IP header contained into ICMP data, default is 5 (5 words of 32 bits).
  417: .TP
  418: .I --icmp-iplen
  419: Set IP packet length of IP header contained into ICMP data, default is the real
  420: length.
  421: .TP
  422: .I --icmp-ipid
  423: Set IP id of IP header contained into ICMP data, default is random.
  424: .TP
  425: .I --icmp-ipproto
  426: Set IP protocol of IP header contained into ICMP data, default is TCP.
  427: .TP
  428: .I --icmp-cksum
  429: Set ICMP checksum, for default is the valid checksum.
  430: .TP
  431: .I --icmp-ts
  432: Alias for --icmptype 13 (to send ICMP timestamp requests).
  433: .TP
  434: .I --icmp-addr
  435: Alias for --icmptype 17 (to send ICMP address mask requests).
  436: .SH TCP/UDP RELATED OPTIONS
  437: .TP
  438: .I -s --baseport source port
  439: hping2 uses source port in order to guess replies sequence number. It
  440: starts with a base source port number, and increase this number for each
  441: packet sent. When packet is received sequence number can be computed as
  442: .IR "replies.dest.port - base.source.port" .
  443: Default base source port is random, using this option you are able to
  444: set different number. If you need that source port not be increased for
  445: each sent packet use the
  446: .I -k --keep
  447: option.
  448: .TP
  449: .I -p --destport [+][+]dest port
  450: Set destination port, default is 0. If '+' character precedes dest port
  451: number (i.e. +1024) destination port will be increased for each reply
  452: received. If double '+' precedes dest port number (i.e. ++1024), destination
  453: port will be increased for each packet sent.
  454: By default destination port can be modified interactively using
  455: .BR CTRL+z .
  456: .TP
  457: .I --keep
  458: keep still source port, see
  459: .I --baseport
  460: for more information.
  461: .TP
  462: .I -w --win
  463: Set TCP window size. Default is 64.
  464: .TP
  465: .I -O --tcpoff
  466: Set fake tcp data offset. Normal data offset is tcphdrlen / 4.
  467: .TP
  468: .I -M --tcpseq
  469: Set the TCP sequence number.
  470: .TP
  471: .I -L --tcpack
  472: Set the TCP ack.
  473: .TP
  474: .I -Q --seqnum
  475: This option can be used in order to collect sequence numbers generated
  476: by target host. This can be useful when you need to analyze whether
  477: TCP sequence number is predictable. Output example:
  478: 
  479: .B #hping2 win98 --seqnum -p 139 -S -i u1 -I eth0
  480: .nf
  481: HPING uaz (eth0 192.168.4.41): S set, 40 headers + 0 data bytes
  482: 2361294848 +2361294848
  483: 2411626496 +50331648
  484: 2545844224 +134217728
  485: 2713616384 +167772160
  486: 2881388544 +167772160
  487: 3049160704 +167772160
  488: 3216932864 +167772160
  489: 3384705024 +167772160
  490: 3552477184 +167772160
  491: 3720249344 +167772160
  492: 3888021504 +167772160
  493: 4055793664 +167772160
  494: 4223565824 +167772160
  495: .fi
  496: 
  497: The first column reports the sequence number, the second difference
  498: between current and last sequence number. As you can see target host's sequence
  499: numbers are predictable.
  500: .TP
  501: .I -b --badcksum
  502: Send packets with a bad UDP/TCP checksum.
  503: .TP
  504: .I --tcp-timestamp
  505: Enable the TCP timestamp option, and try to guess the timestamp update
  506: frequency and the remote system uptime.
  507: .TP
  508: .I -F --fin
  509: Set FIN tcp flag.
  510: .TP
  511: .I -S --syn
  512: Set SYN tcp flag.
  513: .TP
  514: .I -R --rst
  515: Set RST tcp flag.
  516: .TP
  517: .I -P --push
  518: Set PUSH tcp flag.
  519: .TP
  520: .I -A --ack
  521: Set ACK tcp flag.
  522: .TP
  523: .I -U --urg
  524: Set URG tcp flag.
  525: .TP
  526: .I -X --xmas
  527: Set Xmas tcp flag.
  528: .TP
  529: .I -Y --ymas
  530: Set Ymas tcp flag.
  531: .SH COMMON OPTIONS
  532: .TP
  533: .I -d --data data size
  534: Set packet body size. Warning, using --data 40 hping2 will not generate
  535: 0 byte packets but protocol_header+40 bytes. hping2 will display
  536: packet size information as first line output, like this:
  537: .B HPING www.yahoo.com (ppp0 204.71.200.67): NO FLAGS are set, 40 headers + 40 data bytes
  538: .TP
  539: .I -E --file filename
  540: Use
  541: .B filename
  542: contents to fill packet's data.
  543: .TP
  544: .I -e --sign signature
  545: Fill first
  546: .I signature length
  547: bytes of data with
  548: .IR signature .
  549: If the
  550: .I signature length
  551: is bigger than data size an error message will be displayed.
  552: If you don't specify the data size hping will use the signature
  553: size as data size.
  554: This option can be used safely with
  555: .I --file filename
  556: option, remainder data space will be filled using
  557: .IR filename .
  558: .TP
  559: .I -j --dump
  560: Dump received packets in hex.
  561: .TP
  562: .I -J --print
  563: Dump received packets' printable characters.
  564: .TP
  565: .I -B --safe
  566: Enable safe protocol, using this option lost packets in file transfers
  567: will be resent. For example in order to send file /etc/passwd from host
  568: A to host B you may use the following:
  569: .nf
  570: .I [host_a]
  571: .B # hping2 host_b --udp -p 53 -d 100 --sign signature --safe --file /etc/passwd
  572: .I [host_b]
  573: .B # hping2 host_a --listen signature --safe --icmp
  574: .fi
  575: .TP
  576: .I -u --end
  577: If you are using
  578: .I --file filename
  579: option, tell you when EOF has been reached. Moreover prevent that other end
  580: accept more packets. Please, for more information see the
  581: .BR HPING2-HOWTO .
  582: .TP
  583: .I -T --traceroute
  584: Traceroute mode. Using this option hping2 will increase ttl for each
  585: .B ICMP time to live 0 during transit
  586: received. Try
  587: .BR "hping2 host --traceroute" .
  588: This option implies --bind and --ttl 1. You can override the ttl of 1
  589: using the --ttl option. Since 2.0.0 stable it prints RTT information.
  590: .TP
  591: .I --tr-keep-ttl
  592: Keep the TTL fixed in traceroute mode, so you can monitor just one hop
  593: in the route. For example, to monitor how the 5th hop changes or
  594: how its RTT changes you can try
  595: .BR "hping2 host --traceroute --ttl 5 --tr-keep-ttl" .
  596: .TP
  597: .I --tr-stop
  598: If this option is specified hping will exit once the first packet
  599: that isn't an ICMP time exceeded is received. This better emulates
  600: the traceroute behavior.
  601: .TP
  602: .I --tr-no-rtt
  603: Don't show RTT information in traceroute mode. The ICMP time exceeded RTT
  604: information aren't even calculated if this option is set.
  605: .TP
  606: .I --tcpexitcode
  607: Exit with last received packet tcp->th_flag as exit code. Useful for scripts
  608: that need, for example, to known if the port 999 of some host reply with
  609: SYN/ACK or with RST in response to SYN, i.e. the service is up or down.
  610: .SH TCP OUTPUT FORMAT
  611: The standard TCP output format is the following:
  612: 
  613: len=46 ip=192.168.1.1 flags=RA DF seq=0 ttl=255 id=0 win=0 rtt=0.4 ms
  614: 
  615: .B len
  616: is the size, in bytes, of the data captured from the data link layer
  617: excluding the data link header size. This may not match the IP datagram
  618: size due to low level transport layer padding.
  619: 
  620: .B ip
  621: is the source ip address.
  622: 
  623: .B flags
  624: are the TCP flags, R for RESET, S for SYN, A for ACK, F for FIN,
  625: P for PUSH, U for URGENT, X for not standard 0x40, Y for not standard
  626: 0x80.
  627: 
  628: If the reply contains
  629: .B DF
  630: the IP header has the don't fragment bit set.
  631: 
  632: .B seq
  633: is the sequence number of the packet, obtained using the source
  634: port for TCP/UDP packets, the sequence field for ICMP packets.
  635: 
  636: .B id
  637: is the IP ID field.
  638: 
  639: .B win
  640: is the TCP window size.
  641: 
  642: .B rtt
  643: is the round trip time in milliseconds.
  644: 
  645: If you run hping using the
  646: .B -V
  647: command line switch it will display additional information about the
  648: packet, example:
  649: 
  650: len=46 ip=192.168.1.1 flags=RA DF seq=0 ttl=255 id=0 win=0 rtt=0.4 ms
  651: tos=0 iplen=40 seq=0 ack=1223672061 sum=e61d urp=0 
  652: 
  653: .B tos
  654: is the type of service field of the IP header.
  655: 
  656: .B iplen
  657: is the IP total len field.
  658: 
  659: .B seq and ack
  660: are the sequence and acknowledge 32bit numbers in the TCP header.
  661: 
  662: .B sum
  663: is the TCP header checksum value.
  664: 
  665: .B urp
  666: is the TCP urgent pointer value.
  667: 
  668: .SH UDP OUTPUT FORMAT
  669: 
  670: The standard output format is:
  671: 
  672: len=46 ip=192.168.1.1 seq=0 ttl=64 id=0 rtt=6.0 ms
  673: 
  674: The field meaning is just the same as the TCP output meaning of the
  675: same fields.
  676: 
  677: .SH ICMP OUTPUT FORMAT
  678: 
  679: An example of ICMP output is:
  680: 
  681: ICMP Port Unreachable from ip=192.168.1.1 name=nano.marmoc.net
  682: 
  683: It is very simple to understand. It starts with the string "ICMP"
  684: followed by the description of the ICMP error, Port Unreachable
  685: in the example. The ip field is the IP source address of the IP
  686: datagram containing the ICMP error, the name field is just the
  687: numerical address resolved to a name (a dns PTR request) or UNKNOWN if the
  688: resolution failed.
  689: 
  690: The ICMP Time exceeded during transit or reassembly format is a bit
  691: different:
  692: 
  693: TTL 0 during transit from ip=192.168.1.1 name=nano.marmoc.net
  694: 
  695: TTL 0 during reassembly from ip=192.70.106.25 name=UNKNOWN   
  696: 
  697: The only difference is the description of the error, it starts with
  698: TTL 0.
  699: 
  700: .SH AUTHOR
  701: Salvatore Sanfilippo <antirez@invece.org>, with the help of the people mentioned in AUTHORS file and at http://www.hping.org/authors.html
  702: .SH BUGS
  703: Even using the --end and --safe options to transfer files the final packet
  704: will be padded with 0x00 bytes.
  705: .PP
  706: Data is read without care about alignment, but alignment is enforced
  707: in the data structures.
  708: This will not be a problem under i386 but, while usually the TCP/IP
  709: headers are naturally aligned, may create problems with different
  710: processors and bogus packets if there is some unaligned access around
  711: the code (hopefully none).
  712: .PP
  713: On solaris hping does not work on the loopback interface. This seems
  714: a solaris problem, as stated in the tcpdump-workers mailing list,
  715: so the libpcap can't do nothing to handle it properly.
  716: .SH SEE ALSO
  717: ping(8), traceroute(8), ifconfig(8), nmap(1)

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>