[BACK]Return to nc.1 CVS log [TXT][DIR] Up to [local] / src / usr.bin / nc

Annotation of src/usr.bin/nc/nc.1, Revision 1.86

1.86    ! jsing       1: .\"     $OpenBSD: nc.1,v 1.85 2017/05/10 21:56:53 bluhm Exp $
1.1       deraadt     2: .\"
                      3: .\" Copyright (c) 1996 David Sacerdote
                      4: .\" All rights reserved.
                      5: .\"
                      6: .\" Redistribution and use in source and binary forms, with or without
                      7: .\" modification, are permitted provided that the following conditions
                      8: .\" are met:
                      9: .\" 1. Redistributions of source code must retain the above copyright
                     10: .\"    notice, this list of conditions and the following disclaimer.
                     11: .\" 2. Redistributions in binary form must reproduce the above copyright
                     12: .\"    notice, this list of conditions and the following disclaimer in the
                     13: .\"    documentation and/or other materials provided with the distribution.
                     14: .\" 3. The name of the author may not be used to endorse or promote products
                     15: .\"    derived from this software without specific prior written permission
                     16: .\"
                     17: .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
                     18: .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
                     19: .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
                     20: .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
                     21: .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
                     22: .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
                     23: .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
                     24: .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
                     25: .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
                     26: .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
                     27: .\"
1.86    ! jsing      28: .Dd $Mdocdate: May 10 2017 $
1.3       aaron      29: .Dt NC 1
1.4       deraadt    30: .Os
1.1       deraadt    31: .Sh NAME
                     32: .Nm nc
1.28      jmc        33: .Nd arbitrary TCP and UDP connections and listens
1.2       deraadt    34: .Sh SYNOPSIS
1.1       deraadt    35: .Nm nc
1.70      jmc        36: .Op Fl 46cDdFhklNnrStUuvz
                     37: .Op Fl C Ar certfile
                     38: .Op Fl e Ar name
                     39: .Op Fl H Ar hash
1.47      jmc        40: .Op Fl I Ar length
1.1       deraadt    41: .Op Fl i Ar interval
1.70      jmc        42: .Op Fl K Ar keyfile
1.73      jca        43: .Op Fl M Ar ttl
                     44: .Op Fl m Ar minttl
1.47      jmc        45: .Op Fl O Ar length
1.77      beck       46: .Op Fl o Ar staplefile
1.42      djm        47: .Op Fl P Ar proxy_username
1.28      jmc        48: .Op Fl p Ar source_port
1.70      jmc        49: .Op Fl R Ar CAfile
1.57      jeremy     50: .Op Fl s Ar source
1.69      beck       51: .Op Fl T Ar keyword
1.54      guenther   52: .Op Fl V Ar rtable
1.85      bluhm      53: .Op Fl W Ar recvlimit
1.6       aaron      54: .Op Fl w Ar timeout
1.33      djm        55: .Op Fl X Ar proxy_protocol
1.71      schwarze   56: .Op Fl x Ar proxy_address Ns Op : Ns Ar port
1.83      beck       57: .Op Fl Z Ar peercertfile
1.57      jeremy     58: .Op Ar destination
1.48      sobrado    59: .Op Ar port
1.1       deraadt    60: .Sh DESCRIPTION
                     61: The
1.6       aaron      62: .Nm
1.1       deraadt    63: (or
                     64: .Nm netcat )
1.57      jeremy     65: utility is used for just about anything under the sun involving TCP,
                     66: UDP, or
                     67: .Ux Ns -domain
                     68: sockets.
1.13      ericj      69: It can open TCP connections, send UDP packets, listen on arbitrary
                     70: TCP and UDP ports, do port scanning, and deal with both IPv4 and
                     71: IPv6.
1.7       aaron      72: Unlike
1.1       deraadt    73: .Xr telnet 1 ,
1.6       aaron      74: .Nm
1.1       deraadt    75: scripts nicely, and separates error messages onto standard error instead
1.6       aaron      76: of sending them to standard output, as
1.24      pvalchev   77: .Xr telnet 1
1.6       aaron      78: does with some.
1.1       deraadt    79: .Pp
                     80: Common uses include:
1.7       aaron      81: .Pp
                     82: .Bl -bullet -offset indent -compact
1.1       deraadt    83: .It
1.3       aaron      84: simple TCP proxies
1.1       deraadt    85: .It
1.28      jmc        86: shell-script based HTTP clients and servers
1.1       deraadt    87: .It
1.13      ericj      88: network daemon testing
1.1       deraadt    89: .It
1.33      djm        90: a SOCKS or HTTP ProxyCommand for
                     91: .Xr ssh 1
                     92: .It
1.1       deraadt    93: and much, much more
                     94: .El
                     95: .Pp
                     96: The options are as follows:
                     97: .Bl -tag -width Ds
1.13      ericj      98: .It Fl 4
                     99: Forces
                    100: .Nm
                    101: to use IPv4 addresses only.
                    102: .It Fl 6
                    103: Forces
                    104: .Nm
                    105: to use IPv6 addresses only.
1.70      jmc       106: .It Fl C Ar certfile
1.69      beck      107: Specifies the filename from which the public key part of the TLS
1.70      jmc       108: certificate is loaded, in PEM format.
                    109: May only be used with TLS.
1.69      beck      110: .It Fl c
1.70      jmc       111: If using a TCP socket to connect or listen, use TLS.
                    112: Illegal if not using TCP sockets.
1.32      markus    113: .It Fl D
                    114: Enable debugging on the socket.
1.29      tedu      115: .It Fl d
                    116: Do not attempt to read from stdin.
1.69      beck      117: .It Fl e Ar name
1.70      jmc       118: Specify the name that must be present in the peer certificate when using TLS.
1.69      beck      119: Illegal if not using TLS.
1.64      djm       120: .It Fl F
                    121: Pass the first connected socket using
                    122: .Xr sendmsg 2
                    123: to stdout and exit.
                    124: This is useful in conjunction with
                    125: .Fl X
                    126: to have
                    127: .Nm
                    128: perform connection setup with a proxy but then leave the rest of the
1.65      jmc       129: connection to another program (e.g.\&
1.64      djm       130: .Xr ssh 1
                    131: using the
                    132: .Xr ssh_config 5
1.68      tobias    133: .Cm ProxyUseFdpass
1.64      djm       134: option).
1.70      jmc       135: .It Fl H Ar hash
1.69      beck      136: Specifies the required hash string of the peer certificate when using TLS.
                    137: The string format required is that used by
                    138: .Xr tls_peer_cert_hash 3 .
                    139: Illegal if not using TLS, and may not be used with -T noverify.
1.13      ericj     140: .It Fl h
                    141: Prints out
                    142: .Nm
                    143: help.
1.47      jmc       144: .It Fl I Ar length
1.46      djm       145: Specifies the size of the TCP receive buffer.
1.13      ericj     146: .It Fl i Ar interval
1.1       deraadt   147: Specifies a delay time interval between lines of text sent and received.
                    148: Also causes a delay time between connections to multiple ports.
1.70      jmc       149: .It Fl K Ar keyfile
1.69      beck      150: Specifies the filename from which the private key
1.70      jmc       151: is loaded in PEM format.
                    152: May only be used with TLS.
1.13      ericj     153: .It Fl k
                    154: Forces
                    155: .Nm
1.21      ericj     156: to stay listening for another connection after its current connection
1.13      ericj     157: is completed.
1.28      jmc       158: It is an error to use this option without the
                    159: .Fl l
                    160: option.
1.61      haesbaer  161: When used together with the
                    162: .Fl u
                    163: option, the server socket is not connected and it can receive UDP datagrams from
                    164: multiple hosts.
1.1       deraadt   165: .It Fl l
1.13      ericj     166: Used to specify that
1.6       aaron     167: .Nm
1.13      ericj     168: should listen for an incoming connection rather than initiate a
1.7       aaron     169: connection to a remote host.
1.28      jmc       170: It is an error to use this option in conjunction with the
                    171: .Fl p ,
                    172: .Fl s ,
                    173: or
                    174: .Fl z
                    175: options.
1.36      jmc       176: Additionally, any timeouts specified with the
1.35      jmc       177: .Fl w
1.36      jmc       178: option are ignored.
1.73      jca       179: .It Fl M Ar ttl
1.74      jmc       180: Set the TTL / hop limit of outgoing packets.
1.73      jca       181: .It Fl m Ar minttl
1.74      jmc       182: Ask the kernel to drop incoming packets whose TTL / hop limit is under
1.73      jca       183: .Ar minttl .
1.62      sthen     184: .It Fl N
                    185: .Xr shutdown 2
                    186: the network socket after EOF on the input.
                    187: Some servers require this to finish their work.
1.1       deraadt   188: .It Fl n
1.21      ericj     189: Do not do any DNS or service lookups on any specified addresses,
                    190: hostnames or ports.
1.47      jmc       191: .It Fl O Ar length
                    192: Specifies the size of the TCP send buffer.
1.77      beck      193: .It Fl o Ar staplefile
                    194: Specifies the filename from which to load data to be stapled
                    195: during the TLS handshake.
1.81      jmc       196: The file is expected to contain an OCSP response from an OCSP server in
1.78      jmc       197: DER format.
1.77      beck      198: May only be used with TLS and when a certificate is being used.
1.42      djm       199: .It Fl P Ar proxy_username
                    200: Specifies a username to present to a proxy server that requires authentication.
                    201: If no username is specified then authentication will not be attempted.
                    202: Proxy authentication is only supported for HTTP CONNECT proxies at present.
1.28      jmc       203: .It Fl p Ar source_port
1.1       deraadt   204: Specifies the source port
1.6       aaron     205: .Nm
1.1       deraadt   206: should use, subject to privilege restrictions and availability.
1.28      jmc       207: It is an error to use this option in conjunction with the
                    208: .Fl l
                    209: option.
1.70      jmc       210: .It Fl R Ar CAfile
                    211: Specifies the filename from which the root CA bundle for certificate
                    212: verification is loaded, in PEM format.
                    213: Illegal if not using TLS.
                    214: The default is
1.69      beck      215: .Pa /etc/ssl/cert.pem .
1.1       deraadt   216: .It Fl r
1.13      ericj     217: Specifies that source and/or destination ports should be chosen randomly
                    218: instead of sequentially within a range or in the order that the system
1.21      ericj     219: assigns them.
1.28      jmc       220: .It Fl S
                    221: Enables the RFC 2385 TCP MD5 signature option.
1.57      jeremy    222: .It Fl s Ar source
1.3       aaron     223: Specifies the IP of the interface which is used to send the packets.
1.56      jeremy    224: For
                    225: .Ux Ns -domain
                    226: datagram sockets, specifies the local temporary socket file
                    227: to create and use so that datagrams can be received.
1.28      jmc       228: It is an error to use this option in conjunction with the
                    229: .Fl l
                    230: option.
1.69      beck      231: .It Fl T Ar keyword
                    232: Change IPv4 TOS value or TLS options.
                    233: For TLS options
                    234: .Ar keyword
                    235: may be one of
1.80      jmc       236: .Ar tlsall ;
1.79      beck      237: which allows the use of all supported TLS protocols and ciphers,
1.86    ! jsing     238: .Ar tlscompat ;
        !           239: which allows the use of all supported TLS protocols and "compat" ciphers,
1.80      jmc       240: .Ar noverify ;
1.70      jmc       241: which disables certificate verification;
1.69      beck      242: .Ar noname ,
1.75      beck      243: which disables certificate name checking;
1.70      jmc       244: .Ar clientcert ,
1.75      beck      245: which requires a client certificate on incoming connections; or
                    246: .Ar muststaple ,
1.76      jmc       247: which requires the peer to provide a valid stapled OCSP response
                    248: with the handshake.
                    249: It is illegal to specify TLS options if not using TLS.
1.70      jmc       250: .Pp
1.69      beck      251: For IPv4 TOS value
                    252: .Ar keyword
1.58      haesbaer  253: may be one of
                    254: .Ar critical ,
                    255: .Ar inetcontrol ,
                    256: .Ar lowdelay ,
                    257: .Ar netcontrol ,
                    258: .Ar throughput ,
                    259: .Ar reliability ,
                    260: or one of the DiffServ Code Points:
                    261: .Ar ef ,
                    262: .Ar af11 ... af43 ,
                    263: .Ar cs0 ... cs7 ;
                    264: or a number in either hex or decimal.
1.1       deraadt   265: .It Fl t
                    266: Causes
1.6       aaron     267: .Nm
1.25      jmc       268: to send RFC 854 DON'T and WON'T responses to RFC 854 DO and WILL requests.
1.7       aaron     269: This makes it possible to use
1.6       aaron     270: .Nm
1.7       aaron     271: to script telnet sessions.
1.28      jmc       272: .It Fl U
1.51      sobrado   273: Specifies to use
1.52      sobrado   274: .Ux Ns -domain
                    275: sockets.
1.1       deraadt   276: .It Fl u
1.13      ericj     277: Use UDP instead of the default option of TCP.
1.56      jeremy    278: For
                    279: .Ux Ns -domain
                    280: sockets, use a datagram socket instead of a stream socket.
                    281: If a
                    282: .Ux Ns -domain
                    283: socket is used, a temporary receiving socket is created in
                    284: .Pa /tmp
                    285: unless the
                    286: .Fl s
                    287: flag is given.
1.54      guenther  288: .It Fl V Ar rtable
                    289: Set the routing table to be used.
1.1       deraadt   290: .It Fl v
1.13      ericj     291: Have
1.6       aaron     292: .Nm
1.13      ericj     293: give more verbose output.
1.85      bluhm     294: .It Fl W Ar recvlimit
                    295: Terminate after receiving
                    296: .Ar recvlimit
                    297: packets from the network.
1.26      jmc       298: .It Fl w Ar timeout
1.59      fgsch     299: Connections which cannot be established or are idle timeout after
1.26      jmc       300: .Ar timeout
1.59      fgsch     301: seconds.
1.26      jmc       302: The
                    303: .Fl w
                    304: flag has no effect on the
                    305: .Fl l
                    306: option, i.e.\&
                    307: .Nm
                    308: will listen forever for a connection, with or without the
                    309: .Fl w
                    310: flag.
                    311: The default is no timeout.
1.43      jmc       312: .It Fl X Ar proxy_protocol
1.28      jmc       313: Requests that
                    314: .Nm
1.33      djm       315: should use the specified protocol when talking to the proxy server.
                    316: Supported protocols are
                    317: .Dq 4
                    318: (SOCKS v.4),
                    319: .Dq 5
                    320: (SOCKS v.5)
                    321: and
                    322: .Dq connect
                    323: (HTTPS proxy).
                    324: If the protocol is not specified, SOCKS version 5 is used.
1.71      schwarze  325: .It Fl x Ar proxy_address Ns Op : Ns Ar port
1.19      jakob     326: Requests that
                    327: .Nm
                    328: should connect to
1.57      jeremy    329: .Ar destination
1.33      djm       330: using a proxy at
1.28      jmc       331: .Ar proxy_address
                    332: and
                    333: .Ar port .
                    334: If
                    335: .Ar port
1.33      djm       336: is not specified, the well-known port for the proxy protocol is used (1080
                    337: for SOCKS, 3128 for HTTPS).
1.82      jca       338: An IPv6 address can be specified unambiguously by enclosing
                    339: .Ar proxy_address
                    340: in square brackets.
1.84      jmc       341: .It Fl Z Ar peercertfile
                    342: Specifies the filename in which the peer supplied certificates will be saved
                    343: in PEM format.
                    344: May only be used with TLS.
1.1       deraadt   345: .It Fl z
                    346: Specifies that
1.6       aaron     347: .Nm
1.13      ericj     348: should just scan for listening daemons, without sending any data to them.
1.28      jmc       349: It is an error to use this option in conjunction with the
                    350: .Fl l
                    351: option.
                    352: .El
1.35      jmc       353: .Pp
1.57      jeremy    354: .Ar destination
1.35      jmc       355: can be a numerical IP address or a symbolic hostname
                    356: (unless the
                    357: .Fl n
                    358: option is given).
1.57      jeremy    359: In general, a destination must be specified,
1.35      jmc       360: unless the
                    361: .Fl l
                    362: option is given
                    363: (in which case the local host is used).
1.57      jeremy    364: For
                    365: .Ux Ns -domain
                    366: sockets, a destination is required and is the socket path to connect to
                    367: (or listen on if the
                    368: .Fl l
                    369: option is given).
1.35      jmc       370: .Pp
1.48      sobrado   371: .Ar port
1.72      beck      372: can be a specified as a numeric port number, or as a service name.
                    373: Ports may be specified in a range of the form nn-mm.
1.35      jmc       374: In general,
                    375: a destination port must be specified,
                    376: unless the
                    377: .Fl U
1.57      jeremy    378: option is given.
1.28      jmc       379: .Sh CLIENT/SERVER MODEL
                    380: It is quite simple to build a very basic client/server model using
                    381: .Nm .
                    382: On one console, start
                    383: .Nm
                    384: listening on a specific port for a connection.
                    385: For example:
                    386: .Pp
                    387: .Dl $ nc -l 1234
                    388: .Pp
                    389: .Nm
                    390: is now listening on port 1234 for a connection.
                    391: On a second console
                    392: .Pq or a second machine ,
                    393: connect to the machine and port being listened on:
                    394: .Pp
                    395: .Dl $ nc 127.0.0.1 1234
                    396: .Pp
                    397: There should now be a connection between the ports.
                    398: Anything typed at the second console will be concatenated to the first,
                    399: and vice-versa.
                    400: After the connection has been set up,
                    401: .Nm
                    402: does not really care which side is being used as a
                    403: .Sq server
                    404: and which side is being used as a
                    405: .Sq client .
                    406: The connection may be terminated using an
                    407: .Dv EOF
                    408: .Pq Sq ^D .
                    409: .Sh DATA TRANSFER
                    410: The example in the previous section can be expanded to build a
                    411: basic data transfer model.
                    412: Any information input into one end of the connection will be output
                    413: to the other end, and input and output can be easily captured in order to
                    414: emulate file transfer.
                    415: .Pp
                    416: Start by using
                    417: .Nm
                    418: to listen on a specific port, with output captured into a file:
                    419: .Pp
                    420: .Dl $ nc -l 1234 \*(Gt filename.out
                    421: .Pp
                    422: Using a second machine, connect to the listening
                    423: .Nm
                    424: process, feeding it the file which is to be transferred:
                    425: .Pp
1.66      jmc       426: .Dl $ nc -N host.example.com 1234 \*(Lt filename.in
1.28      jmc       427: .Pp
                    428: After the file has been transferred, the connection will close automatically.
                    429: .Sh TALKING TO SERVERS
                    430: It is sometimes useful to talk to servers
                    431: .Dq by hand
                    432: rather than through a user interface.
                    433: It can aid in troubleshooting,
                    434: when it might be necessary to verify what data a server is sending
                    435: in response to commands issued by the client.
                    436: For example, to retrieve the home page of a web site:
1.40      jmc       437: .Bd -literal -offset indent
1.55      guenther  438: $ printf "GET / HTTP/1.0\er\en\er\en" | nc host.example.com 80
1.40      jmc       439: .Ed
1.28      jmc       440: .Pp
                    441: Note that this also displays the headers sent by the web server.
                    442: They can be filtered, using a tool such as
                    443: .Xr sed 1 ,
                    444: if necessary.
                    445: .Pp
                    446: More complicated examples can be built up when the user knows the format
                    447: of requests required by the server.
                    448: As another example, an email may be submitted to an SMTP server using:
                    449: .Bd -literal -offset indent
                    450: $ nc localhost 25 \*(Lt\*(Lt EOF
                    451: HELO host.example.com
1.44      jmc       452: MAIL FROM:\*(Ltuser@host.example.com\*(Gt
                    453: RCPT TO:\*(Ltuser2@host.example.com\*(Gt
1.28      jmc       454: DATA
                    455: Body of email.
                    456: \&.
                    457: QUIT
                    458: EOF
                    459: .Ed
                    460: .Sh PORT SCANNING
                    461: It may be useful to know which ports are open and running services on
                    462: a target machine.
                    463: The
                    464: .Fl z
                    465: flag can be used to tell
1.22      markus    466: .Nm
1.39      jmc       467: to report open ports,
                    468: rather than initiate a connection.
1.28      jmc       469: For example:
                    470: .Bd -literal -offset indent
1.39      jmc       471: $ nc -z host.example.com 20-30
1.28      jmc       472: Connection to host.example.com 22 port [tcp/ssh] succeeded!
                    473: Connection to host.example.com 25 port [tcp/smtp] succeeded!
                    474: .Ed
                    475: .Pp
                    476: The port range was specified to limit the search to ports 20 \- 30.
                    477: .Pp
                    478: Alternatively, it might be useful to know which server software
                    479: is running, and which versions.
                    480: This information is often contained within the greeting banners.
                    481: In order to retrieve these, it is necessary to first make a connection,
                    482: and then break the connection when the banner has been retrieved.
                    483: This can be accomplished by specifying a small timeout with the
                    484: .Fl w
                    485: flag, or perhaps by issuing a
                    486: .Qq Dv QUIT
                    487: command to the server:
                    488: .Bd -literal -offset indent
                    489: $ echo "QUIT" | nc host.example.com 20-30
                    490: SSH-1.99-OpenSSH_3.6.1p2
                    491: Protocol mismatch.
                    492: 220 host.example.com IMS SMTP Receiver Version 0.84 Ready
                    493: .Ed
1.1       deraadt   494: .Sh EXAMPLES
1.37      jmc       495: Open a TCP connection to port 42 of host.example.com, using port 31337 as
1.28      jmc       496: the source port, with a timeout of 5 seconds:
                    497: .Pp
1.37      jmc       498: .Dl $ nc -p 31337 -w 5 host.example.com 42
1.69      beck      499: .Pp
1.70      jmc       500: Open a TCP connection to port 443 of www.google.ca, and negotiate TLS.
                    501: Check for a different name in the certificate for validation.
1.69      beck      502: .Pp
                    503: .Dl $  nc -v -c -e adsf.au.doubleclick.net www.google.ca 443
1.28      jmc       504: .Pp
1.37      jmc       505: Open a UDP connection to port 53 of host.example.com:
1.28      jmc       506: .Pp
1.37      jmc       507: .Dl $ nc -u host.example.com 53
1.28      jmc       508: .Pp
1.37      jmc       509: Open a TCP connection to port 42 of host.example.com using 10.1.2.3 as the
1.28      jmc       510: IP for the local end of the connection:
                    511: .Pp
1.37      jmc       512: .Dl $ nc -s 10.1.2.3 host.example.com 42
1.28      jmc       513: .Pp
1.51      sobrado   514: Create and listen on a
1.52      sobrado   515: .Ux Ns -domain
1.57      jeremy    516: stream socket:
1.28      jmc       517: .Pp
                    518: .Dl $ nc -lU /var/tmp/dsocket
1.33      djm       519: .Pp
1.37      jmc       520: Connect to port 42 of host.example.com via an HTTP proxy at 10.2.3.4,
1.38      jmc       521: port 8080.
                    522: This example could also be used by
                    523: .Xr ssh 1 ;
                    524: see the
                    525: .Cm ProxyCommand
                    526: directive in
                    527: .Xr ssh_config 5
                    528: for more information.
1.33      djm       529: .Pp
1.37      jmc       530: .Dl $ nc -x10.2.3.4:8080 -Xconnect host.example.com 42
1.42      djm       531: .Pp
                    532: The same example again, this time enabling proxy authentication with username
                    533: .Dq ruser
                    534: if the proxy requires it:
                    535: .Pp
                    536: .Dl $ nc -x10.2.3.4:8080 -Xconnect -Pruser host.example.com 42
1.1       deraadt   537: .Sh SEE ALSO
1.38      jmc       538: .Xr cat 1 ,
                    539: .Xr ssh 1
1.15      smart     540: .Sh AUTHORS
                    541: Original implementation by *Hobbit*
1.63      schwarze  542: .Aq Mt hobbit@avian.org .
1.28      jmc       543: .br
                    544: Rewritten with IPv6 support by
1.63      schwarze  545: .An Eric Jackson Aq Mt ericj@monkey.org .
1.39      jmc       546: .Sh CAVEATS
1.60      lum       547: UDP port scans using the
1.39      jmc       548: .Fl uz
1.60      lum       549: combination of flags will always report success irrespective of
                    550: the target machine's state.
                    551: However,
                    552: in conjunction with a traffic sniffer either on the target machine
                    553: or an intermediary device,
                    554: the
                    555: .Fl uz
                    556: combination could be useful for communications diagnostics.
                    557: Note that the amount of UDP traffic generated may be limited either
                    558: due to hardware resources and/or configuration settings.