Aşağıdaki kodda: gonderenMailAdresi, password ve aliciMailAdresi bilgilerini dolurun. Ardından "/home/" klasörü altına getIP.py olarak kopyalayın.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib
import re
import smtplib  
import time
import sys
  
def getIP():
 url = "http://checkip.dyndns.org"
 print "IP Addresi alınıyor"
  
 print url
  
 request = urllib.urlopen(url).read()
 global theIP   
 theIP = re.findall(r"\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}", request)
 global eskiIpAdresi
 print "your IP Address is: ",  theIP
 
def mailGonder(gonderilecekData): 
 SMTP_SERVER = 'smtp.gmail.com'
 SMTP_PORT = 587
  
 gonderenMailAdresi = 'xxxx@xxxx.com'
 password = 'XXXXXXXXX'
 aliciMailAdresi = 'xxxx@xxxx.com'
 subject = 'IP Adres: '
 body = gonderilecekData + "\nIP adres: ".join(theIP)
  
 
  
 body = "" + body + ""
  
 headers = ["From: " + gonderenMailAdresi,
            "Subject: " + subject,
            "To: " + aliciMailAdresi,
            "MIME-Version: 1.0",
            "Content-Type: text/html"]
 headers = "\r\n".join(headers)
  
 session = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
  
 session.ehlo()
 session.starttls()
 session.ehlo
 print 'login oluyor...'
 session.login(gonderenMailAdresi,password)
 print 'mail gonderiliyor...' 
 session.sendmail(gonderenMailAdresi, aliciMailAdresi, headers + "\r\n\r\n" + body)
 print 'gonderildi. cikiliyor...'
 session.quit()
 print 'bitti.'
eskiIpAdresi = ""
theIP=""
while 1:
 try:
  print "ip"
  print theIP
  print "eskiIp"
  print eskiIpAdresi
  if theIP == "" :
   print "ilk açılma. Yeni mail adresi alınıyor."
   getIP()
   eskiIpAdresi=theIP
   mailGonder("İlk açılma ")
  elif eskiIpAdresi != theIP:
   getIP() 
   eskiIpAdresi = theIP
   print "ip adresi farkli mail gonderiliyor"
   mailGonder("IP değişti: ")
  else:
   getIP()
   print "IP ayni"
  print "uyuyor..."
  time.sleep(10) 
 except KeyboardInterrupt:
  raise
 except:
      print "Unexpected error:", sys.exc_info()[0]
Daha sonra "sudo nano /etc/rc.local" ile rc.local dosyasına aşağıdaki satırı ekleyin.
"screen -d -m python /home/getIP.py"
(NOT: exit 0 satırının üstünde olmalı.)
CTRL+X tuşu ile çıkış işlemini yapın. "E" ve enter tuşuna basıp kaydederek nano uygulamasından çıkın.
Bu sayede getIP.py dosyamız her açılışta yeni bir screen açıp arka planda çalışacaktır.
Not: bu işlem için screen (sudo apt-get install screen) ve python bileşenlerinin yüklü olması gereklidir.
Bundan sonra raspberry pi her açılışta yada her IP değişiminde size mail atarak IP adresini bildirecektir.
Örnek dosyayı bu linkten indirebilirsiniz: https://www.dropbox.com/s/zrokab9weg31uk9/getIP_.py
 
Hiç yorum yok:
Yorum Gönder