martes, 22 de enero de 2013

Comprobar si mi IP a cambiado y alertar vía email

En 3 sencillos pasos crearemos una tarea que compruebe si nuestra IP ha cambiado y de ser así nos enviará un email.

Paso uno copiar este script escrito en Python y modificar los siguientes parámetros escritos en MAYÚSCULA. El servidor SMTP en caso de que el servidor necesite autentificación introduccir el EMAIL y CONTRASEÑA  y  por último modificamos el EMAIL receptor que será donde recibiremos el correo. En mi caso he llamado al script changeIP.py
#!/usr/bin/env python
import os
from datetime import *
import smtplib
from email.mime.text import MIMEText

def mail(mensaje):
        mailServer = smtplib.SMTP('SMTP.SERVIDOR',25)
        mailServer.ehlo()
        mailServer.starttls()
        mailServer.ehlo()
        mailServer.login("MI@EMAIL.ES","CONTRASEÑAAA")
        mensaje = MIMEText(str(mensaje))
        mensaje['From']="MI@EMAIL.ES"
        mensaje['To']="MI@EMAIL.RECEPTOR"
        mensaje['Subject']="Aviso IP Wifi cambiada"
        mailServer.sendmail("MI@EMAIL.ES","MI@EMAIL.RECEPTOR",mensaje.as_string())
        mailServer.close()

def leer():
        contenido=''
        f = open("oldIP.tmp", "r")
        while True:
                linea = f.readline()
                contenido = contenido + ' ' + linea
                if not linea: break
        f.close()
        return contenido

newip=''
oldip=leer()
while len(oldip) < 4:
        oldip=leer()
while len(newip) < 4:
        os.system("curl ifconfig.me > oldIP.tmp")
        newip=leer()
print "IP vieja: "+oldip
if oldip != newip:
        print "IP nueva: "+newip
        print "enviar mail"
        mail("La IP a cambiado a "+newip+" La antigua IP era "+oldip)
else:
        print "no ha cambiado"
Si habéis investigado el script comprueba siempre el fichero oldIP.tmp ese fichero contendrá nuestra dirección IP vieja y la comparará con la actual para comprobar que ha cambiado. En el segundo paso crearemos nuestro fichero oldIP.tmp con una IP falsa para que el script salte y comprobemos que funciona. Ejecutamos los siguiente
sudo su
cd
echo 0.0.0.0 > oldIP.tmp
En el tercer y último paso crearemos nuestra tarea CRON para que se ejecute automáticamente.
sudo crontab -e
y escribimos al final la siguiente linea
0,15,35,45 * * * * changeIP.py
Guardamos los cambios y listo. Cada 15 minutos se comprobará si nuestra dirección IP a sido modificada.