Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # stash-of-scripts.blogspot.com
- # @programical
- #
- # Special thanks to ivan_pozdeev from StackOverflow
- import smtplib as smtp
- from json import loads
- from requests import get
- from socket import gethostname
- from time import sleep
- # Set up logging
- import sys,logging,logging.handlers,os.path
- logfile = os.path.splitext(os.path.basename(sys.argv[0]))[0]+".log"
- l = logging.getLogger()
- l.setLevel(logging.DEBUG)
- f = logging.Formatter('%(asctime)s %(process)d:%(thread)d %(name)s %(levelname)-8s %(message)s')
- h=logging.StreamHandler(sys.stdout)
- h.setLevel(logging.NOTSET)
- h.setFormatter(f)
- l.addHandler(h)
- h=logging.handlers.RotatingFileHandler(logfile,maxBytes=1024**2,backupCount=1)
- h.setLevel(logging.NOTSET)
- h.setFormatter(f)
- l.addHandler(h)
- del h,f
- # Hook to log unhandled exceptions
- def excepthook(type,value,traceback):
- logging.error("Unhandled exception occured",exc_info=(type,value,traceback))
- # Don't need another copy of traceback on stderr
- if old_excepthook!=sys.__excepthook__:
- old_excepthook(type,value,traceback)
- old_excepthook = sys.excepthook
- sys.excepthook = excepthook
- del excepthook,logfile
- #------
- machineName = "John's Computer"
- emailUname = "devicetracker@gmail.com"
- emailPass = "p@s$word"
- emailServer = "smtp.gmail.com"
- sendTo = "john@gmail.com"
- timeBetweenReports = 2 # Hours
- #------
- while True:
- try:
- response = loads(get("http://freegeoip.net/json").text)
- report = """
- %s | Report
- -- - --
- Currently assigned name: %s
- IP: %s
- City: %s
- Coordinates: %s, %s
- -- - --
- """ % (machineName, gethostname(), response["ip"], response["city"], response["latitude"], response["longitude"])
- s = smtp.SMTP(emailServer, 587)
- s.starttls()
- s.login(emailUname, emailPass)
- s.sendmail(emailUname, sendTo, report)
- s.close()
- sleep(timeBetweenReports*60*60)
- except:
- sleep(60)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement