Advertisement
Guest User

Device Tracker 2

a guest
Mar 25th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.86 KB | None | 0 0
  1. # stash-of-scripts.blogspot.com
  2. # @programical
  3. #
  4. # Special thanks to ivan_pozdeev from StackOverflow
  5.  
  6. import smtplib as smtp
  7. from json import loads
  8. from requests import get
  9. from socket import gethostname
  10. from time import sleep
  11.  
  12. # Set up logging
  13. import sys,logging,logging.handlers,os.path
  14. logfile = os.path.splitext(os.path.basename(sys.argv[0]))[0]+".log"
  15. l = logging.getLogger()
  16. l.setLevel(logging.DEBUG)
  17. f = logging.Formatter('%(asctime)s %(process)d:%(thread)d %(name)s %(levelname)-8s %(message)s')
  18. h=logging.StreamHandler(sys.stdout)
  19. h.setLevel(logging.NOTSET)
  20. h.setFormatter(f)
  21. l.addHandler(h)
  22. h=logging.handlers.RotatingFileHandler(logfile,maxBytes=1024**2,backupCount=1)
  23. h.setLevel(logging.NOTSET)
  24. h.setFormatter(f)
  25. l.addHandler(h)
  26. del h,f
  27. # Hook to log unhandled exceptions
  28. def excepthook(type,value,traceback):
  29.     logging.error("Unhandled exception occured",exc_info=(type,value,traceback))
  30.     # Don't need another copy of traceback on stderr
  31.     if old_excepthook!=sys.__excepthook__:
  32.         old_excepthook(type,value,traceback)
  33. old_excepthook = sys.excepthook
  34. sys.excepthook = excepthook
  35. del excepthook,logfile
  36.  
  37. #------
  38.  
  39. machineName = "John's Computer"
  40. emailUname = "devicetracker@gmail.com"
  41. emailPass = "p@s$word"
  42. emailServer = "smtp.gmail.com"
  43. sendTo = "john@gmail.com"
  44. timeBetweenReports = 2 # Hours
  45.  
  46. #------
  47.  
  48. while True:
  49.     try:
  50.         response = loads(get("http://freegeoip.net/json").text)
  51.  
  52.         report = """
  53.         %s | Report
  54.  
  55.         -- - --
  56.  
  57.         Currently assigned name: %s
  58.         IP: %s
  59.         City: %s
  60.         Coordinates: %s, %s
  61.  
  62.         -- - --
  63.         """ % (machineName, gethostname(), response["ip"], response["city"], response["latitude"], response["longitude"])
  64.  
  65.         s = smtp.SMTP(emailServer, 587)
  66.         s.starttls()
  67.         s.login(emailUname, emailPass)
  68.         s.sendmail(emailUname, sendTo, report)
  69.         s.close()
  70.         sleep(timeBetweenReports*60*60)
  71.     except:
  72.         sleep(60)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement