A couple of suggestions to reduce the time this sort of thing takes.

  1. If you *must* ping, use a parallel pinger and parse the results.
  2. Query your DNS server for your zone(s). This will give you your statically assigned addresses, also those devices that can dynamically update DNS.
  3. Query your DHCP servers for dynamically assigned addresses - where a MAC address appears more than once only use the most recently assigned address.
  4. Consider using a program specifically designed to do what you are attempting. I use nmap from http://www.insecure.org/ - it's a *nix tool but they do support a Windows port.


An example of how to query DNS and use a parallel pinger can be found in my PINGCHECK.KIX post at http://www.kixtart.org/ubbthreads/showflat.php?Cat=0&Number=128213&an=&page=0&vc=1 which also includes a link to the parallel pinger.