Netcat 1.10 is an updated release of Netcat, a simple Unix utility which reads
and writes data across network connections using TCP or UDP protocol.  It is
designed to be a reliable "back-end" tool that can be used directly or easily
driven by other programs and scripts.  At the same time it is a feature-rich
network debugging and exploration tool, since it can create almost any kind of
connection you would need and has several interesting built-in capabilities.

Some of netcat's major features are:

	Outbound or inbound connections, TCP or UDP, to or from any ports
	Full DNS forward/reverse checking, with appropriate warnings
	Ability to use any local source port
	Ability to use any locally-configured network source address
	Built-in port-scanning capabilities, with randomizer
	Built-in loose source-routing capability
	Can read command line arguments from standard input
	Slow-send mode, one line every N seconds
	Hex dump of transmitted and received data
	Optional ability to let another program service established connections
	Optional telnet-options responder

A very short list of potential uses:

	Script backends
	Scanning ports and inventorying services, automated probes
	Backup handlers
	File transfers
	Server testing, simulation, debugging, and hijacking
	Firewall testing
	Proxy gatewaying
	Network performance testing
	Address spoofing tests
	Protecting X servers
	1001 other uses you'll likely come up with

Changes between the 1.00 release and this release:

	Better portability -- updated generic.h and Makefile [thanx folks!]
	Indication of local-end interface address on inbound connections
	That's *Dave* Borman's telnet, not Paul Borman...
	Better indication of DNS errors
	Total byte counts printed if -v -v is used
	A bunch of front-end driver companion programs and scripts
	Better handling of stdin arguments-plus-data
	Hex-dump feature
	Telnet responder
	Program exec works inbound or outbound now

Netcat and the associated package is a product of Avian Research, and is freely
available in full source form with no restrictions save an obligation to give
credit where due.  Get it via anonymous FTP at avian.org:/src/hacks/nc110.tgz
which is a gzipped tar file and not to be confused with its version 1.00
precursor, nc100.tgz.  Other distribution formats can be accomodated upon
request.  Netcat is also mirrored at the following [faster] sites:

	zippy.telcom.arizona.edu:/pub/mirrors/avian.org/hacks/nc110.tgz
	ftp.sterling.com:/mirrors/avian.org/src/hacks/nc110.tgz
	coast.cs.purdue.edu:/pub/tools/unix/netcat/nc110.tgz
	ftp.rge.com:/pub/security/coast/mirrors/avian.org/netcat/nc110.tgz

_H* 960320
