I need to "Ping" workstations in a file to see if they are awake and on LAN, what is the best way of doing this?

I currently just use a FileExist routine, but this is too slow, as more and more workstations are added to the domain.

All help and Ideas appreciated