Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys,re,urllib,time
- from datetime import datetime
- from urllib import FancyURLopener
- from random import choice
- import subprocess as sp
- print """
- ___ _ _ __ __
- / __(_) |_ ___| \/ |___ _ _
- \__ \ | _/ -_) |\/| / _ \ ' \
- |___/_|\__\___|_| |_\___/_||_|
- Pathogen @ www.hakhub.tk
- """
- url = sys.argv[1]
- interval = "10"
- pcount = "6"
- command = "ping -i " + interval + " -c " + pcount + " " + url
- method = raw_input("Which method of determinging if host is up would you like to use?\n(0)Ping packet loss\n(1)www.downforeveryoneorjustme.com (HTTP)\n>")
- if method == "0":
- print 'Ping module chosen - Ping interval:' + interval + ' Ping Count:' + pcount
- while 1:
- cmd = sp.Popen(command,stdout = sp.PIPE,shell=True)
- results = cmd.stdout.read()
- time = datetime.now()
- alert = 'notify-send "The host ' + url + ' seems to be down - ' + str(time) + '"'
- if re.search('100%',results):
- sp.Popen(alert,shell=True)
- print "Host is DOWN - " + str(time)
- elif re.search('0%',results):
- print "Host is up - " + str(time)
- else:
- qual = re.findall("[0-9]{1,3}%",results)
- print "Connection quality in questions - " + qual[0] + " packet loss"
- elif method == "1":
- print 'HTTP module chosen - Notification intervals: 5 Minutes'
- user_agents = [
- 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11',
- 'Opera/9.25 (Windows NT 5.1; U; en)',
- 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
- 'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',
- 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12',
- 'Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9',
- 'Googlebot/2.1 (+http://www.googlebot.com/bot.html)'
- ]
- class ua(FancyURLopener):
- version = choice(user_agents)
- while 1:
- urllib._urlopener = ua()
- url = "http://www.downforeveryoneorjustme.com/" + url
- html = urllib.urlopen(url).read()
- timer = datetime.now()
- alert = 'notify-send "The host ' + url + ' seems to be down - ' + str(timer) + '"'
- if re.findall("It's just you.",html):
- print "Host seems to be up - " + str(timer)
- elif re.findall("looks down from here.",html):
- sp.Popen(alert,shell=True)
- print "Host is DOWN - " + str(timer)
- time.sleep(300)
- else:
- print "No module chosen."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement