                      ncp - a fast file copy tool for LANs

(Note: This is from 2000 and has not been touched since. I still use it on a
daily basis)

Download it from http://dl.fefe.de/ncp-1.2.4.tar.bz2 [pgp sig]! The current
version is 1.2.4. Recent changes: switch to libowfat

Good news: I got an email from Ripclaw from Rock Linux who told me that they are
going to integrate ncp.

Please note that on recent IPv6 implementations, link-local addresses are not
valid without specifying an interface, so you can't npoll with a link-local
address on the command line. Standard npush/npoll now works with link-local
addresses, though. Due to Linux 2.4.0test brokenness, you currently can't npoll
from the same machine that runs npush.

Since ncp is based on libdjb, it features full IPv6 support and the DNS resolver
is built in, i.e. no more security problems because of lame libc functions.

I also provide a statically linked x86 Linux binary [sig] compressed with upx
which only weighs in at ~20k. I shrunk the binary with diet libc.

npush will now use IPv6 and IPv4 multicast on the multicast groups
ff02::6e63:7030 (6e63:7030 == 'ncp0') and 224.110.99.112 (110.99.112 == 'ncp').
If both methods fail, npush will resort to the broadcast packets used by
previous versions. You can force the broadcast method by passing "-b" to npush
so that previous npoll versions can see the announcements.

"ncp" is a utility for copying files in a LAN. It has absolutely no security or
integrity checking, no throttling, no features, except one: you don't have to
type the coordinates of your peer.

Please note that the DNS resolver does not use /etc/hosts (as that would not
work with IPv6 anyway), so you should have a properly configured DNS server.

Basically it works like this:
 1. You and your buddy want to play Quake
 2. Your buddy has a level that you don't have
 3. He types npush filename and waits. npush sends out UDP announcement packets
    proclaiming that someone wants to send something
 4. You type npoll. npoll waits until it sees one of these packets
 5. The files are copied with tar over a TCP socket, so permissions and file
    dates (and if you are root, owners) are preserved.

There are other usage modes. You can also use it like this:

  peer1$ ncp
                           peer2$ ncp peer1 file1 file2 file3

or like this:

  peer1$ npush file1
                           peer2$ npoll peer1
