                            NetPipe v1.0.0 (Beta)

                (c) 1999 by Jan Oberlnder <mindriot@gmx.net>

        http://home.t-online.de/home/jan.o/netpipe.html (coming soon)

DOCUMENTATION

1. What is NetPipe?

NetPipe is a simple tool which allows the distribution of data over a network
using broadcasting techniques. You can pipe data into and out from NetPipe to
send and receive it on different stations in a subnet.

2. Command-Line options

Usage: netpipe [-?]
       netpipe [-v] -c [-p port] [-t timeout]
       netpipe [-v] [-n num_clients] [-p port] [-t timeout] [-1] Dest_IP

2.1 Client mode

  To start NetPipe  in client mode, type 'netpipe -c'.  The following options
  are available:

       netpipe [-v] -c [-p port] [-t timeout]

    -c           Client mode, right...
    -v           Start in verbose  mode. This enables  status messages  to be
                 sent to  stderr. You should  always consider this  since you
                 won't see any output except some error messages without this
                 option.
    -p <port>    Enter another base port.  NetPipe runs on  port 9000/9001 by
                 default.
    -t <timeout> Change the default  timeout. Standard is 1  second. This may
                 be helpful in slow networks.

  Example:

  This starts  a NetPipe client in verbose  mode on ports 9100/9101 and pipes
  the received data into a file.

    netpipe -c -v -p 9100 > /root/data

2.2 Server mode

  To start NetPipe in server mode, type 'netpipe <Destination_IP>'.

       netpipe [-v] [-n num_clients] [-p port] [-t timeout] [-1] Dest_IP

    <Dest_IP>    This is mandatory  - you need to give a  Destination to tell
                 NetPipe where to send  your data. You can use  broadcast IPs
                 as well, such as 192.168.1.255.
    -v           Verbose mode, see above.
    -p <port>    Port base, see above.
    -t <timeout> Timeout value, see above.
    -n <clients> Tell NetPipe the  number of clients. This is  necessary when
                 you're broadcasting  and sending your data  to more than one
                 client. NetPipe will default to one client.
    -1           Normally NetPipe sends out a data  packet and requires every
                 single client to  acknowledge each packet. In  this mode one
                 client is  selected as  master. Only that  client will  then 
                 acknowledge  the  packets while the  others will only report 
                 errors. WARNING: this  is still EXPERIMENTAL  and not at all
                 bug-free!

  Example:

  This will  start a NetPipe  server on ports 8400/8401 and  tells it to wait
  for 10 clients in the 192.168.2.255 subnet, trying to transfer the complete
  first IDE hard disk. This is a good method for cloning workstaions!

    netpipe -v -p 8400 -n 10 192.168.2.255 < /dev/hda

3. Using NetPipe to clone workstations

  NetPipe was mainly  created to have a free Linux tool that allows  the clo-
  ning of workstations. I  used it at first to create a  compressed hard disk
  image:

    Server: use dd to retrieve the raw  hard disk data, pipe it through gzip,
            and send it over the net to one client which will save the data.

      dd if=/dev/hda | gzip -c | netpipe -v 192.168.1.1

    Client: the client saves the data into a file.

      netpipe -c -v > /root/hdimage.gz

  In the second step, the client becomes the server and distributes the image
  to all workstations (10 in this example). You should start the workstations
  from a  bootable floppy; we used  this to clone some WinNT workstations for
  school.

    Server: 192.168.1.1 will now gunzip the image  and then distribute it. If
            your network is slow, you may also let the clients gunzip the in-
            coming data.

      gunzip /root/hdimage.gz -c | netpipe -v -n 10 192.168.1.255

    Client: The client will simply receive and write back onto the HD.

      netpipe -c -v > /dev/hda
