Here is an example of how I would solve your problem using cygwin in my setup at home.
192.168.1.1 is the IP address of my wireless router, so it always responds to a ping.
192.168.1.2 is the IP address of my PC - the one I would run this script on.
192.168.1.3 is - let's say - the IP address of a PC that is currently off.
I have cygwin installed and all the binaries are in C:\cygwin - this directory is in my PATH.
These binaries I'm talking about are Win32 ports of POSIX utilities - very slick, very powerful tools that I strongly believe every serious IT professional should be familiar with. They make a very good team with the pre-existing Windows command line utilities, whether they be built-in ones, or resource kit ones, or whatever other command line based power tools you may have.
As a prerequisite to the solution below, I have temporarily enabled the Messenger service on my 192.168.1.2 box - this one is required in order for the net send command to work.
Before I start describing the solution, this is a little experiment I did - please note the use of the $? return code, which may be 0 for successful and 1 meaning failure.

What I did then is create a text file called ips.txt, like this:

and I ran the following script in the cygwin bash shell (remember this is still Windows XP, you're just pretending to work the way you would in UNIX):
CODE
while true
do
for ipaddress in `cat ips.txt`
do
ping $ipaddress
if [ $? != 0 ]
then
net send 192.168.1.2 $ipaddress is down
fi
done
sleep 3600
done
and the popup that I get looks like this:

The net send command is not restricted to IP addresses, it can also recognize any kind of resolvable host name (NetBIOS, DNS, LDAP, etc...).
If you want to get even fancier, you can put this on a server and configure it as a Windows background service using a small resource kit utility called srvinstw.exe.
Good luck.
Comment/Reply (w/o sign-up)