
Welcome to scotty!

You are looking at the source of scotty, a tcl interpreter with some
extensions to obtain various informations about TCP/IP networks.
The extensions include commands to send icmp packets a la ping,
to lookup hostnames by calling gethostbyaddr and gethostbyname,
to query the portmapper and mount daemons. Also included are tcp 
extensions that are based on the tclRawTCP extensions written by 
Pekka Nikander and Tim MacKenzie. The main purpose of scotty is to 
use it to write simple TCP/IP debugging tools.

This version has also a command to query the domain name service
for a, ptr, hinfo, mx and soa records. And you can use the syslog
facility to write log messages in a 'standard' way.

The directory ntping contains the source of ntping that is used as a
server for icmp requests. We can't send icmp packets directly from a tcl
interpreter, since we need access to a raw socket. Therefore we spawn
a process running suid root which performs the icmp request.


INSTALLATION:

To compile scotty, you must have tcl 7.3 installed.

To make scotty and ntping, type configure and make. This should work
on most UNIX systems. There are two more options that can be used to 
define a tcl include and a tcl library directory:

	--with-tcl-include=<path>
	--with-tcl-library=<path>

The default compiler is gcc. You can farce the use of cc by using:

        --with-cc

Installation of the ntping binary requires root privilege since ntping
must access raw sockets. You can use the target sinstall to do this
from the top level makefile.

On Ultrix and maybe some other machines that dont have rpcgen there is
a file rpcgen-out.shar in the compat directory.  It contains the files
that were created by rpcgen on a Sun workstation running SunOs 4.1.1.
The configure script will use these files in case it does not find
rpcgen on your system.

The examples directory contains some small scripts to play around and
to test scotty.

If you have problems with the compilation or if you have made any
changes to get scotty and ntping running on your hardware, please 
let us know.


FUTURE:

Scotty is the base tcl interpreter that can be used with the tkined
network editor. A paper describing tkined is available from
ftp.ibr.cs.tu-bs.de in the file /ftp/ibr/pub/local/papers/ined.ps.Z. 
It has been presented at the SANS II conference in April. The tkined 
directory contains some simple tcl scripts that give you an impression 
of what can be done using tkined and scotty. The latest tkined editor
is also available via ftp from ftp.ibr.cs.tu-bs.de in the file named
/ftp/ibr/pub/local/tkined-*.tar.Z.


Have fun,
				Juergen Schoenwaelder
				(schoenw@ibr.cs.tu-bs.de)


Credits:

scotty started as a readline tcl frontend when there was no standard 
tclsh available. I added commands to access network information when 
I started work on the network editor tkined. 

Some of scotty's commands were taken from the net: The tcp commands
were written by Pekka Nikander (pnr@innopoli.ajk.tele.fi) and Tim
MacKenzie (tym@dibbler.cs.monash.edu.au).  The select command is taken
from extended tcl written by Karl Lehenbauer (karl@neosoft.com) and
Mark Diekhans (markd@Grizzly.com).

The dns command and the icmp server ntping were written by Erik
Schoenfelder (schoenfr@ibr.cs.tu-bs.de) who also helped me to fix bugs
and to enhance portability. 

Dirk Grunwald (grunwald@foobar.cs.colorado.edu) and Dan Mosedale
(mosedale@genome.stanford.edu) provided patches for DEC alpha
machines.

Bob Shaw (bshaw@spdc.ti.com) helped by reporting bugs that made scotty
more portable.

