Salve a tutti,
in questo articolo riporto un piccolo script in python nato per la necessità che ho avuto di restare “in contatto” con un pc collegato ad internet con un ip pubblico dinamico.
Cosa fà lo script?
Molto semplicemente lanciandolo inizia il suo lavoro che consiste in un loop infinito, lavorerà fin quando non lo fermeremo manualmente, e controllerà l’ip pubblico per rilevare variazioni.
Se rileverà un cambiamento ci invierà una email comunicandoci il nuovo indirizzo.
Ma andiamo a vedere il codice e poi un breve commento
#!/usr/bin/python # -*- coding: utf-8 -*- import urllib,smtplib,time # Tempo di attesa in secondi tra due controlli attesa = 600 # Parametri per invio email destinatario = "email_destinataio@gmail.com" mittente = 'email_mittente@gmail.com' username = 'email_mittente@gmail.com' password = 'password' # Altre variabili MemoriaIp="" conta = 0 while True: conta += 1 print "Controllo n. %i" % conta # Legge IP pubblico sock = urllib.urlopen("http://ipecho.net/plain") ReadIP = sock.read() sock.close() if ReadIP != MemoriaIp: # Comunica nuovo IP a video print "Rilevato nuovo IP %s" % ReadIP # Ricorda IP per verifica cambiamento MemoriaIp = ReadIP # Prepara variabili per email oggetto = 'Notifica IP %s' % ReadIP testo = 'Il tuo IP: %s' % ReadIP header = 'From: %s\n' % mittente header += 'To: %s\n' % destinatario header += 'Subject: %s\n\n' % oggetto msg = header + testo #Invia email server = smtplib.SMTP_SSL("smtp.gmail.com", 465) server.ehlo() server.login(username,password) server.sendmail(mittente, destinatario, msg) server.quit() time.sleep(attesa)
Nella parte iniziale troviamo le variabili generali, in particolare attesa è l’intervallo di tempo che passa tra due controlli, il valore è espresso in secondi quindi il valore 600 equivale a 10 minuti.
A seguire abbiamo le variabili con i dati dell’ account del mittente e del destinatario delle email di segnalazione, compresi i parametri per l’autenticazione.
Come avrete notato in questo esempio ho usato degli indirizzi gmail, ho fatto questa scelta perchè credo che siano tra i piu’ usati ….. vabè c’è anche da dire che era quello che serviva a me 😉
Cmq il tutto è , come sempre, facilmente personalizzabile.
Le altre variabili sono solo di servizio e quindi non hanno bisogno di ulteriori spiegazioni.
A questo punto inizia il loop che controlla l’ip leggendo il risultato del sito http://ipecho.net/plain che ci fornisce il nostro ip pubblico, lo memorizza e lo confronta con l’ultimo letto.
A questo punto se i due valori non coincidono vuol dire che il nostro indirizzo ip è cambiato e quindi parte il messaggio email che contiene il nuovo ip.
Questo è quanto, piccolo script ma spero utile anche a voi.
Saluti!