preloder
1 Marzo 2017

Restiamo in contatto grazie a python.

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!

 

Share

You may also like...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *