bash

En ocasiones es necesario probar si X puerto de ciertos servidores están abiertos, la solución rápida seria NMAP, pero esto se vuelve tedioso cuando son mas de 5 Redes distintas y que cada una solo tenga 20 Servidores.

Pongamos un Ejemplo, Supongamos que nos solicitan probar si los siguientes servidores tienen el puerto 80 abierto:

10.58.0.81
10.58.0.89
10.58.0.97
10.58.0.97
10.58.16.33
10.58.16.41
10.58.56.17
10.58.87.1
10.58.87.9
10.58.87.9
10.58.92.17
192.168.131.13
192.168.131.21
192.168.131.51
192.168.133.107
192.168.133.113
192.168.133.140
192.168.133.180
192.168.133.185
192.168.133.38
192.168.133.67
192.168.140.25
192.168.141.21
192.168.223.13

Como indicamos la tarea fácil seria enviarle a nmap dichas IP’s como parámetros, pero sabemos que nmap es un programa un poco lento, y no todas las distribuciones vienen con el.

Así que se creo un pequeño Script en Bash, para que mediante un archivo donde están todas las IP’s a probar (Imaginen Probar un Puerto de 1000 Direcciones) si Y puerto esta abierto.

La Sintaxis es la siguiente:

./testport.sh Archivo_Con_IPs Puerto

El Contenido del script es:

#!/bin/bash
IP=`cat $1`
for SERVER in ${IP}
do
netcat -z ${SERVER} $2
if [ $? -eq 0 ]
then
echo “${SERVER}: Conexion Aceptada al Puerto $2”
else
echo “${SERVER}: Conexion Rechazada al Puerto $2”
fi
done

Un Ejemplo de su funcionamiento:

Selección_001