Browse Source

solved indentation erros

pull/3/head
rscmbbng 11 years ago
parent
commit
cba0658121
  1. 117
      main.py

117
main.py

@ -1,4 +1,4 @@
#!/usr/bin/python
#!/usr/local/bin/python
# -*- coding: iso-8859-15 -*-
"""
BC (Border-Check) is a tool to retrieve info of traceroute tests over website navigation routes.
@ -26,12 +26,12 @@ DEBUG = 1
class bc(object):
"""
BC main Class
"""
BC main Class
"""
def __init__(self):
"""
Init defaults
"""
Init defaults
"""
self.browser = "" # "F" Firefox / "C" Chrome
self.browser_path = ""
self.url = ""
@ -39,14 +39,14 @@ class bc(object):
def set_options(self, options):
"""
Set program options
"""
Set program options
"""
self.options = options
def create_options(self, args=None):
"""
Create options for OptionParser
"""
Create options for OptionParser
"""
self.optionParser = BCOptions()
self.options = self.optionParser.get_options(args)
if not self.options:
@ -55,8 +55,8 @@ class bc(object):
def try_running(self, func, error, args=None):
"""
Try running a function and print some error if it fails and exists with a fatal error.
"""
Try running a function and print some error if it fails and exists with a fatal error.
"""
options = self.options
args = args or []
try:
@ -70,10 +70,10 @@ class bc(object):
if DEBUG:
traceback.print_exc()
def check_browser(self):
"""
Check for browser used by system
def check_browser(self):
"""
Check for browser used by system
"""
if sys.platform == 'darwin':
f_osx = os.path.join(os.path.expanduser('~'), 'Library/Application Support/Firefox/Profiles')
c_osx = os.path.join(os.path.expanduser('~'), 'Library/Application Support/Google/Chrome/Default/History')
@ -81,26 +81,26 @@ class bc(object):
try:
if os.path.exists(f_osx):
if len(os.listdir(f_osx)) > 2:
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:
all_subdirs.remove(os.path.join(f_osx,'.DS_Store')) #throwing out .DS_store
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"
self.browser_path = osx_history_path
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:
all_subdirs.remove(os.path.join(f_osx,'.DS_Store')) #throwing out .DS_store
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"
self.browser_path = osx_history_path
self.browser = "F"
@ -140,10 +140,10 @@ class bc(object):
def getURL(self):
"""
Set urls to visit
"""
Set urls to visit
"""
print "Browser database:", self.browser_path, "\n"
conn = sqlite3.connect(self.browser_path)
conn = sqlite3.connect(self.browser_path)
c = conn.cursor()
if self.browser == "F": #Firefox history database
@ -164,8 +164,8 @@ class bc(object):
def getGEO(self):
"""
Get Geolocation database (http://dev.maxmind.com/geoip/legacy/geolite/)
"""
Get Geolocation database (http://dev.maxmind.com/geoip/legacy/geolite/)
"""
# Download and extract database
try:
urllib.urlretrieve('http://xsser.sf.net/map/GeoLiteCity.dat.gz',
@ -182,9 +182,9 @@ class bc(object):
geoip= pygeoip.GeoIP('GeoLiteCity.dat')
def run(self, opts=None):
"""
Run BorderCheck
"""
"""
Run BorderCheck
"""
#eprint = sys.stderr.write
# set options
if opts:
@ -206,19 +206,19 @@ class bc(object):
BorderCheckWebserver(self)
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_ip = socket.gethostbyname(url)
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_ip = socket.gethostbyname(url)
print url_ip
if url != self.old_url:
count = 0
print url
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')
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')
for line in a.stdout:
for line in a.stdout:
logfile.write(line)
parts = line.split()
for ip in parts:
@ -231,7 +231,7 @@ class bc(object):
city = record['city']
print count, "While surfing you got to "+ip+" which is in "+city+", "+country
elif record.has_key('country_name'):
country = record['country_name']
country = record['country_name']
print count, "While surfing you got to "+ip+" which is in "+country
time.sleep(0.3)
count+=1
@ -239,15 +239,14 @@ class bc(object):
print "Not more records. Aborting...", "\n"
exit()
self.old_url = url
print"old url =", self.old_url
logfile.close()
time.sleep(5)
self.old_url = url
print"old url =", self.old_url
logfile.close()
time.sleep(5)
if __name__ == "__main__":
app = bc()
options = app.create_options()
if options:
app.set_options(options)
app.run()
app.run()
Loading…
Cancel
Save