si quieres un programa que ya lo haga revisa nmap que es para consola de comandos y está muy bien diseñadp y optimizado (tambien tienes zenmap que es nmap + una interfaz grafica)
sobre si quieres desarrollarlo, el lenguaje, el que más te guste excepto javascript (a menos que sea con node)
sobre la herramienta, lo más simple sería llamar a ping y leer la salida, lee las opciones que tiene disponible ese comando, tambien vas a necesitar usar multihilo (multithreading) porque ping normalmente tiene una diración minima de 1 segundo, entonces un simple rango /24 te va a durar un minimo de 4 minutos, haciendo multihilo puedes ir por lote, por ejemplo de 16 en 16, tomaría 16 segundos en terminar
No, no quiero usar un programa ajeno, quiero hacerlo yo y es para la red de mi trabajo, la idea es monitorear el estado actual de los dispositivos de esa red, de cualquier sector al que se le deje el script o server instalado en al menos 1 de las maquinas, de manera remota, es decir, poder ver desde un cliente, en otra red, la latencia, nombre de equipo y demas datos que se puedan recuperar.
Recuerdo, hace tiempo, haber hecho una herramienta que devolvia en "ms" la latencia de un servidor, habia usado una api, pero no recuerdo cual. Tendria que revisar un poco.
Volviendo al tema:
for /L %z in (1,1,254) do @ping 10.0.0.%z -w 10 -n 1 | find "Reply"
Encontré este comando en batch para pingear un rango de direcciones, lo idea seria que devuelva la latencia, no si responde o no. Bah, aunque no es tan importante ver cuanto tienen de lantecia cada equipo de la red pero, quedaria mas prolijo y preciso. Aunque demandaria tener que estar pingeando de manera constante.
pd: Hay manera de recuperar los distintos tipos de resultados que devuelva? es decir, tiempo agotado, inaccesible, etc.