18 septiembre 2006

IP Pública

Aquí dejo mi primera receta :)

Para conocer nuestra IP pública tenemos varias webs:
http://checkip.dyndns.org
http://www.whatismyip.com
http://www.showmyip.com
http://www.ipchicken.com
http://www.whatismyip.org
y un largo etc.

¿Y si queremos conocer nuestra IP pública mediante un comando para tratarla dentro de un script? Pues aquí tenéis un script con el cual conocer vuestra IP pública en Linux:
#!/bin/bash
# Requiere "lynx" para funcionar
# Muestra tu IP pública.

lynx -source http://www.whatismyip.com/ | grep '<TITLE>' | cut -c25- | cut -f1 -d\<
Si además queremos que nuestro PC nos notifique cuando cambie de IP al correo (muy útil para dejar funcionando un FTP para acceder a tus archivos desde otro lugar, por ejemplo) podríamos hacer lo siguiente:
#!/bin/bash
# Requiere los paquetes "mailx" y "lynx"
# Te envía un email cada vez que te cambia la IP pública. Ejecutar en background

pidof /usr/lib/postfix/master > /dev/null
#comprueba si postfix esta iniciado, si existe su proceso

if [ $? != 0 ];then
echo el demonio postfix debe estar iniciado para que funcione myip
echo como root ejecuta: /etc/init.d/postfix start
exit
fi

if ! [ -d ~/.myip ];then #comprueba si el directorio de myip existe
mkdir ~/.myip
fi

if ! [ -f ~/.myip/public.ip ];then #comprueba si el archivo public.ip existe

echo NEW > ~/.myip/public.ip
fi

while true;do
old_ip=`cat ~/.myip/public.ip`
new_ip=`lynx -source http://www.whatismyip.com/ | grep '<TITLE>' | cut -c25- | cut -f1 -d\<`
if [ "$old_ip" != "$new_ip" ];then
echo $new_ip | mail tudireccion@dominio.com -s "Tu IP ha cambiado"
#cambiar direccion por la tuya
echo $new_ip > ~/.myip/public.ip
fi
sleep 300 #segundos de espera entre una comprobación y otra
done



Basado en una receta que encontré en CRySoL http://crysol.inf-cr.uclm.es/node/83

Última actualización: 20 Septiembre 2006

1 comentario:

Unknown dijo...

Hola
cambiaría la condición

[ "$new_ip" != "" ] && [ "$old_ip" != "$new_ip" ]

así no me mandaba un mensaje de IP en blanco en caso de desconexión del router.

un saludo. jocucol@gmail.com