Tengo una lista de direcciones IP en un archivo json. Mi aplicación Java debería hacer lo siguiente.
Otra información:
¿Puede por favor sugerir las opciones que tengo para realizar esta tarea?
Una opción es instalar/habilitar servidores SSH en las máquinas remotas, luego
ping a cada IP para verificar si está activo. En Java, podría usar algo como InetAddress#isReachable() para esto.ps , etc. para obtener la lista de procesos en ejecución en la máquina. En Java, puede usar cualquiera de las bibliotecas SSH disponibles. Por ejemplo: jschIncluso puede omitir el paso 2 y probar de inmediato la conexión SSH, y determinar si el host está activo de esa manera... pero el ping será más confiable (pero asegúrese de que ninguna configuración de firewall impida que las máquinas remotas respondan a los ping).
En lugar de InetAddress#isReachable(), puede usar el comando exec de Runtimes para ejecutar un comando de ping nativo. Mira esto
Podría intentar usar Zabbix o algún análogo liviano con JMX
En su computadora, el comando ping puede no existir. Entonces, una forma más precisa de verificar la disponibilidad es usar ()
InetAddress address = InetAddress.getByName("127.0.0.1"); boolean reachable = address.isReachable(10000);Pero puede haber problemas . Entonces, si no teme la dependencia de la plataforma, puede usar el comando ping de UNIX de la siguiente manera:
Process p1 = java.lang.Runtime.getRuntime().exec("ping -c 1 www.google.com"); int returnVal = p1.waitFor(); boolean reachable = (returnVal==0);Para el tercer paso puedes usar JSch