Necesito una línea de comandos que pueda comprobar el estado del puerto en un host remoto. He probado ping xxx.xxx.xxx.xxx:161
pero no reconoce el "host". Pensé que era una "buena" respuesta hasta que hice el mismo comando contra un host que sé que tiene ese puerto abierto. Esto es para un archivo por lotes en Windows que comprobará el estado del puerto remoto y luego ejecutar un comando que utiliza ese puerto remoto para la información, entonces el comando de comprobación de puerto remoto de nuevo, entonces el comando que utiliza ese puerto en el siguiente servidor para la información, y así sucesivamente. He buscado por todas partes y he pensado que el ping podría hacerlo, pero debe haber varias versiones de ping, supongo que como el servidor en el que estoy haciendo esto no muestra esa opción.
Sólo para las risas, he probado un comprobador de puerto remoto basado en la web de un sitio web - y los resultados fueron correctos tanto para el "problema" servidor y el servidor correcto. Sin embargo, no puedo utilizarlo en una ejecución por lotes con más de 500 IPs de servidores.
¿Hay algo que pueda hacer que sea simple? Mis habilidades de Perl son extremadamente oxidado (usarlo o perderlo), don't sabe cualquier otro lenguaje basado en Windows, excepto por lotes. Unix es mi habilidad, pero esto debe ser ejecutado desde Widows Server 2003.
Parece que estás buscando un escáner de puertos como nmap o netcat, ambos disponibles para Windows, Linux y Mac OS X.
Por ejemplo, busca telnet en una ip conocida:
nmap -A 192.168.0.5/32 -p 23
Por ejemplo, busca puertos abiertos del 20 al 30 en host.example.com:
nc -z host.example.com 20-30
Creo que estás buscando Hping (http://www.hping.org/), que tiene una versión para Windows.
"La interfaz está inspirada en el ping(8) comando unix, pero hping no es sólo es capaz de enviar solicitudes de eco ICMP. Soporta TCP, UDP, ICMP..."
También es muy útil si quieres ver en qué punto de una ruta un puerto TCP está bloqueado (como por un cortafuegos), donde ICMP podría no estarlo.