Browse Source

fixed some identations and added browser automatic launcher

pull/3/head
psy 11 years ago
parent
commit
f1548d52eb
  1. 28
      main.py
  2. 7
      webserver.py

28
main.py

@ -72,7 +72,7 @@ Try running a function and print some error if it fails and exists with a fatal
def check_browser(self):
"""
Check for browser used by system
Check browsers used by system
"""
if sys.platform == 'darwin':
f_osx = os.path.join(os.path.expanduser('~'), 'Library/Application Support/Firefox/Profiles')
@ -81,7 +81,7 @@ Check for browser used by system
try:
if os.path.exists(f_osx):
if len(os.listdir(f_osx)) > 2:
print 'you have multiple profiles, choosing the last one used'
print 'You have multiple profiles, choosing the last one used'
#filtering the directory that was last modified
all_subdirs = [os.path.join(f_osx,d)for d in os.listdir(f_osx)]
try:
@ -89,37 +89,30 @@ Check for browser used by system
except:
pass
latest_subdir = max(all_subdirs, key=os.path.getmtime)
osx_profile = os.path.join(f_osx, latest_subdir)
osx_history_path = os.path.join(osx_profile, 'places.sqlite')
self.browser_path = osx_history_path
else:
for folder in os.listdir(f_osx):
if folder.endswith('.default'):
osx_default = os.path.join(f_osx, folder)
osx_history_path = os.path.join(osx_default, 'places.sqlite')
print "setting:", osx_history_path, "as history file"
print "Setting:", osx_history_path, "as history file"
self.browser_path = osx_history_path
self.browser = "F"
elif os.path.exists(c_osx):
self.browser = "C"
self.browser_path = c_osx
elif os.path.exists(chromium_osx):
self.browser = "CHROMIUM"
self.browser_path = chromium_osx
except:
print "no firefox or chrome installed"
print "Warning: No firefox or chrome installed."
elif sys.platform.startswith('linux'):
f_lin = os.path.join(os.path.expanduser('~'), '.mozilla/firefox/') #add the next folder
c_lin = os.path.join(os.path.expanduser('~'), '.config/google-chrome/History')
chromium_lin = os.path.join(os.path.expanduser('~'), '.config/chromium/Default/History')
if os.path.exists(f_lin):
#missing multiple profile support
for folder in os.listdir(f_lin):
@ -128,16 +121,13 @@ Check for browser used by system
lin_history_path = os.path.join(lin_default, 'places.sqlite')
self.browser = "F"
self.browser_path = lin_history_path
elif os.path.exists(c_lin):
self.browser = "C"
self.browser_path = c_lin
elif os.path.exists(chromium_lin):
self.browser = "CHROMIUM"
self.browser_path = chromium_lin
def getURL(self):
"""
Set urls to visit
@ -149,10 +139,6 @@ Set urls to visit
if self.browser == "F": #Firefox history database
c.execute('select url, last_visit_date from moz_places ORDER BY last_visit_date DESC')
elif self.browser == "C": #Chrome history database
# Linux: /home/$USER/.config/google-chrome/
# Linux: /home/$USER/.config/chromium/
# Windows Vista (and Win 7): C:\Users\[USERNAME]\AppData\Local\Google\Chrome\
# Windows XP: C:\Documents and Settings\[USERNAME]\Local Settings\Application Data\Google\Chrome\
c.execute('select urls.url, urls.title, urls.visit_count, urls.typed_count, urls.last_visit_time, urls.hidden, visits.visit_time, visits.from_visit, visits.transition from urls, visits where urls.id = visits.url')
else: # Browser not allowed
print "\nSorry, you haven't a compatible browser\n\n"
@ -185,7 +171,6 @@ Get Geolocation database (http://dev.maxmind.com/geoip/legacy/geolite/)
"""
Run BorderCheck
"""
#eprint = sys.stderr.write
# set options
if opts:
options = self.create_options(opts)
@ -203,17 +188,16 @@ Run BorderCheck
print "url:", self.url
# start web mode
print("Running webserver\n")
BorderCheckWebserver(self)
BorderCheckWebserver(self) #child process or another thread
while True:
url = urlparse(self.url[0]).netloc
url = url.replace('www.','') #--> doing a tracert to for example.com and www.example.com yields different results most of the times.
url = url.replace('www.','') #--> doing a tracert to example.com and www.example.com yields different results.
url_ip = socket.gethostbyname(url)
print url_ip
if url != self.old_url:
count = 0
print url
a = subprocess.Popen(['lft', '-S', '-n', '-E', url_ip], stdout=subprocess.PIPE) # -> using tcp
#a = subprocess.Popen(['lft', '-S', '-n', '-u', url_ip], stdout=subprocess.PIPE) # -> using udp
logfile = open('logfile', 'a')

7
webserver.py

@ -12,6 +12,7 @@ from runpy import run_module
from urlparse import urlparse
from cgi import parse_qs #, parse_header, parse_multipart
import cgi
import webbrowser
port = 8080
wwwroot = "web/"
@ -35,8 +36,6 @@ def print_exception(type=None, value=None, tb=None, limit=None):
return ret
class HttpHandler(BaseHTTPRequestHandler):
# TODO: whitelist out there
def client_not_allowed(self, addr):
return False
if addr == "127.0.0.1":
@ -50,7 +49,6 @@ class HttpHandler(BaseHTTPRequestHandler):
tmp = uri.find ('?')
args = parse_qs(urlparse(uri)[4])
#from ipdb import set_trace;set_trace()
if tmp != -1:
uri = uri[0:tmp]
for a in uri[tmp:-1].split("&"):
@ -89,7 +87,6 @@ class HttpHandler(BaseHTTPRequestHandler):
"uri": uri,
"args": args,
"cwd": cwd,
"headers": self.headers,
"content": content
}
try:
@ -121,6 +118,7 @@ class BorderCheckWebserver():
HttpHandler.ref = ref
httpd = HTTPServer(('', port), HttpHandler)
print "http://127.0.0.1:%d/ : Serving directory '%s/www'" % (port, os.getcwd())
webbrowser.open('http://127.0.0.1:8080', new=1)
try:
httpd.serve_forever()
except KeyboardInterrupt:
@ -130,7 +128,6 @@ if __name__=="__main__":
wwwroot = "www"
httpd = HTTPServer(('', port), HttpHandler)
print "http://127.0.0.1:%d/ : Serving directory '%s/www'" % (port, os.getcwd())
try:
httpd.serve_forever()
except KeyboardInterrupt:

Loading…
Cancel
Save