Detectando IP disponibles mediante un script de consola de Mac OS X
Mac OS X, como todo sistema basado en Unix, cuenta con una serie de trucos y de funcionalidades que pueden ejecutarse directamente desde la terminal del sistema o la consola, como también se le conoce. En este mini-tutorial, veremos una manera sencilla de visualizar las direcciones IP que se encuentran disponibles o libres en un rango de red, luego de realizar un ping a estas direcciones IP. Se trata de la creación de un pequeño programa ejecutable de consola que hará esta tarea de forma automática.
Creando nuestro programa de consola
Los programas de ejecución secuencial que se utilizan en la consola o línea de comandos, llevan por nombre script. En esta oportunidad, crearemos un script para listar direcciones IP disponibles en un amplio rango de red.
Para realizar esta tarea, necesitaremos un editor de texto plano que puede ser en nuestro caso, vim y por supuesto, algo de tiempo para realizar y ejecutar el script.
Lo primero que debemos hacer, es abrir la línea de comandos del Mac y luego que se despliegue por la pantalla del sistema, abrimos el editor de texto y creamos el archivo del script, escribiendo el siguiente comando en la consola:
vim net_scanner.sh
Al teclear la orden y pulsar retorno, se abrirá el editor de textos y allí debemos escribir el siguiente programa:
#!/bin/bash
read -p “Introduce el rango a escanear: ” RANGE;
for i in $(seq 1 254);
do EXISTS=`ping -w 3 -c 2 $RANGE.$i |grep ‘time=’`
if [ «$EXISTS» = «» ]
then
echo $RANGE.$i esta disponible.
fi
done
echo Listo!
Guardamos el programa y cambiamos los permisos de escritura. Para ello, escribimos la siguiente orden en la línea de comandos:
chmod +x net_scanner.sh
Ahora, sólo resta ejecutar el programa con la siguiente orden:
./net_scanner.sh
Una vez que ingresemos este comando, podremos visualizar justo debajo de la orden la lista de direcciones IP disponibles, como podemos ver a continuación luego de introducir el rango de red que deseamos:
Introduce el rango a escanear: 192.168.1
192.168.1.1 disponible.
192.168.1.2 disponible.
192.168.1.3 disponible.
Listo!