2) Ping works by sending an ICMP echo request (type 8 code 0). If the machine is up and something along the way isn't stopping it, the machine will send an ICMP echo reply (type 0 code 0).

1) While I suppose it would be possible to do it in bash, sh, etc, what about something a little more structured like perl?

I will be looking into this to see if I can get one to work real quick and get an answer back to the rest of it.

/nebulus

EDIT: Btw, I know you said it is an exercise, but I don't know of anything that can beat nmap's ping sweep, simply because fyodor doesn't wait for a response before pinging the next host...which I don't think will be possible in sh...which would have to use the stock ping program which will wait...