Advertisement
Guest User

Untitled

a guest
Oct 25th, 2018
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.80 KB | None | 0 0
  1. #! /usr/bin/python
  2.  
  3. ###############################################################################
  4. #
  5. # Version 0.1
  6. #
  7. ###############################################################################
  8.  
  9. import time
  10. import requests
  11. import smtplib
  12.  
  13.  
  14. # config, adjust these as per your need
  15. input_file = 'urls.txt'
  16. from_email = 'marshx136@gmail.com'
  17. from_name = 'MX'
  18. to_emails = [
  19.  
  20. 'marshx136@gmail.com'
  21. ]
  22. to_names = [
  23. 'test1',
  24. 'test2'
  25. ]
  26. gmail_id = 'marshx136@gmail.com'
  27. gmail_password = 'MX'
  28.  
  29. message = "From: " + from_name + " <" + from_email + ">\n"
  30. message += "To: TO_NAME <TO_EMAIL>\n"
  31. message += "Subject: Instance #bit24 URL status code\n\n"
  32.  
  33.  
  34. f = open('urls.txt','r')
  35. URLS = f.readlines()
  36. f.close()
  37.  
  38.  
  39. ###############################################################################
  40. # Don't edit below this line
  41. ###############################################################################
  42. GREEN = '\033[92m'
  43. YELLOW = '\033[93m'
  44. RED = '\033[91m'
  45. ENDC = '\033[0m'
  46.  
  47. def main():
  48. while True:
  49. print ("\nTesting URLs.", time.ctime())
  50. checkUrls()
  51. print ("Press CTRL+C to exit")
  52. time.sleep(2) #Sleep 10 seconds
  53.  
  54.  
  55. def checkUrls():
  56. for url in URLS:
  57. status = "N/A"
  58. try:
  59. status = checkUrl(url)
  60. except requests.exceptions.ConnectionError:
  61. status = "DOWN"
  62. sendmail(from_email, to_names, to_emails, message + url + "Status Code: " + status)
  63. printStatus(url, status)
  64. time.sleep(2)
  65.  
  66. def checkUrl(url):
  67. try:
  68. r = requests.get(url)
  69. return str(r.status_code)
  70. except Exception as e:
  71. print (RED + 'Exception:' + ' ' + url)
  72. sendmail(from_email, to_names, to_emails, message + "Exception for url: " + url)
  73.  
  74. def printStatus(url, status):
  75. color=RED
  76. if status != None:
  77. if status == "200":
  78. color=GREEN
  79. sendmail(from_email, to_names, to_emails, message + url + "Status Code: OK - " + status)
  80. elif status == "429":
  81. sendmail(from_email, to_names, to_emails, message + url + "Status Code: Rate Limiting - " + status)
  82. print (color+status+ENDC+' '+ url)
  83.  
  84. def sendmail(sender, names, receivers, message):
  85. smtpObj = smtplib.SMTP('smtp.gmail.com:587')
  86. smtpObj.ehlo()
  87. smtpObj.starttls()
  88. smtpObj.login(gmail_id, gmail_password)
  89. for i, mail in enumerate(receivers):
  90. message1 = message.replace('TO_EMAIL', mail)
  91. message2 = message1.replace('TO_NAME', names[i])
  92. try:
  93. smtpObj.sendmail(sender, mail, message2)
  94. except smtplib.SMTPException as e:
  95. print("Error: unable to send email", e)
  96.  
  97. #
  98. # Main app
  99. #
  100. if name == 'main':
  101. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement