mirror of
https://github.com/rscmbbng/Border-Check.git
synced 2024-12-28 06:41:34 +01:00
fixed error when some xml data fails. code checkpoint.
This commit is contained in:
parent
437772b205
commit
582efc2477
15
main.py
15
main.py
@ -251,10 +251,10 @@ class bc(object):
|
||||
if self.method == '-e':
|
||||
self.method = '-E'
|
||||
try:
|
||||
self.content = subprocess.check_output(['lft', '-S', '-n', self.method, self.destination_ip])
|
||||
self.content = subprocess.check_output(['lft', '-S', '-n', self.destination_ip])
|
||||
# support for older python versions (<2.7) that don't support subprocess.check_output
|
||||
except:
|
||||
a = subprocess.Popen(['lft', '-S', '-n', self.method, self.destination_ip], stdout=subprocess.PIPE)
|
||||
a = subprocess.Popen(['lft', '-S', '-n', self.destination_ip], stdout=subprocess.PIPE)
|
||||
self.content = a.stdout.read()
|
||||
|
||||
self.attempts += 1
|
||||
@ -331,27 +331,21 @@ class bc(object):
|
||||
self.attempts = 0
|
||||
self.result_list = []
|
||||
self.lft()
|
||||
|
||||
|
||||
if self.options.debug == True:
|
||||
logfile = open('tracelogfile', 'a')
|
||||
thingstolog = ['='*45 + "\n", "Browser: ", self.browser_path.split('/')[-1], "\n", "Version: ", self.browser_version, "\n", "Path to browser: ", self.browser_path, "\n", "History db: ", self.browser_history_path, "\n","URL: ", self.url[0], "\n", "Host: ",url, "\n", "Host ip: ", url_ip, "\n", '='*45, "\n"]
|
||||
for item in thingstolog:
|
||||
logfile.write(item)
|
||||
print '='*45 + "\n" + "Packages Route:\n" + '='*45
|
||||
|
||||
output = self.content.splitlines()
|
||||
|
||||
for line in output:
|
||||
if self.options.debug == True:
|
||||
logfile.write(line+'\n')
|
||||
|
||||
line = line.split()
|
||||
|
||||
for ip in line:
|
||||
if re.match(r"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$",ip):
|
||||
self.hop_ip = ip
|
||||
|
||||
record = self.geoip.record_by_addr(ip)
|
||||
try:
|
||||
self.asn = self.geoasn.org_by_addr(ip)
|
||||
@ -389,8 +383,9 @@ class bc(object):
|
||||
self.vardict = {'destination_ip': self.destination_ip, 'hop_count': self.hop_count,'hop_ip': self.hop_ip, 'server_name': self.server_name, 'country': self.country, 'city': self.city, 'longitude': self.longitude, 'latitude': self.latitude, 'asn' : self.asn, 'timestamp' : self.timestamp }
|
||||
except:
|
||||
print "Trace:", self.hop_count, "->", "Not allowed"
|
||||
self.hop_count+=1
|
||||
self.vardict = {'destination_ip': self.destination_ip, 'hop_count': self.hop_count,'hop_ip': self.hop_ip, 'server_name': self.server_name, 'country': '-', 'city': '-', 'longitude': '-', 'latitude': '-', 'asn' : self.asn, 'timestamp' : self.timestamp }
|
||||
|
||||
self.hop_count+=1
|
||||
# write xml data to file
|
||||
self.result_list.append(self.vardict)
|
||||
xml_results = xml_reporting(self)
|
||||
@ -403,10 +398,8 @@ class bc(object):
|
||||
logfile.close()
|
||||
self.old_url = url
|
||||
self.hop_count = 0 # to start a new map
|
||||
print "\n"
|
||||
return
|
||||
|
||||
|
||||
def getGEO(self):
|
||||
"""
|
||||
Get Geolocation database (http://dev.maxmind.com/geoip/legacy/geolite/)
|
||||
|
52
web/index.py
52
web/index.py
@ -1,25 +1,21 @@
|
||||
#new index.py
|
||||
# -*- coding: ISO-8859-1 -*-
|
||||
from lxml import etree
|
||||
|
||||
#!/usr/bin/python
|
||||
# -*- coding: iso-8859-15 -*-
|
||||
"""
|
||||
BC (Border-Check) is a tool to retrieve info of traceroute tests over website navigation routes.
|
||||
GPLv3 - 2013 by psy (epsylon@riseup.net)
|
||||
"""
|
||||
from xml.dom.minidom import parseString
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
# extract data from a xml file
|
||||
f = open('data.xml', 'r')
|
||||
f2 = open('data.xml', 'r')
|
||||
xml = etree.parse(f)
|
||||
|
||||
xml = ET.parse(f)
|
||||
data = f2.read()
|
||||
dom = parseString(data.encode('utf-8'))
|
||||
|
||||
f.close()
|
||||
f2.close()
|
||||
|
||||
|
||||
|
||||
|
||||
n_hops = dom.getElementsByTagName('hop')[-1].toxml().replace('<hop>', '').replace('</hop','')
|
||||
|
||||
hoplist = []
|
||||
geoarray = []
|
||||
latlong= []
|
||||
@ -27,26 +23,21 @@ latlong= []
|
||||
b = ''
|
||||
|
||||
for counter in range(1, int(xml.findall('hop')[-1].text)+1):
|
||||
hop = parseString(dom.getElementsByTagName('hop')[counter].toxml().encode('utf-8'))
|
||||
server_name = hop.getElementsByTagName('server_name')[0].toxml().replace('<server_name>','').replace('</server_name>','')
|
||||
asn = hop.getElementsByTagName('asn')[0].toxml().replace('<asn>','').replace('</asn>','')
|
||||
hop_ip = hop.getElementsByTagName('hop_ip')[0].toxml().replace('<hop_ip>','').replace('</hop_ip>','')
|
||||
longitude = hop.getElementsByTagName('longitude')[0].toxml().replace('<longitude>','').replace('</longitude>','')
|
||||
latitude = hop.getElementsByTagName('latitude')[0].toxml().replace('<latitude>','').replace('</latitude>','')
|
||||
hop = parseString(dom.getElementsByTagName('hop')[counter].toxml().encode('utf-8'))
|
||||
server_name = hop.getElementsByTagName('server_name')[0].toxml().replace('<server_name>','').replace('</server_name>','')
|
||||
asn = hop.getElementsByTagName('asn')[0].toxml().replace('<asn>','').replace('</asn>','')
|
||||
hop_ip = hop.getElementsByTagName('hop_ip')[0].toxml().replace('<hop_ip>','').replace('</hop_ip>','')
|
||||
longitude = hop.getElementsByTagName('longitude')[0].toxml().replace('<longitude>','').replace('</longitude>','')
|
||||
latitude = hop.getElementsByTagName('latitude')[0].toxml().replace('<latitude>','').replace('</latitude>','')
|
||||
|
||||
point = """ L.marker(["""+latitude+""", """+longitude+"""]).addTo(map)
|
||||
.bindPopup("<b>"""+server_name+"""</b><br />"""+hop_ip+"""<br />"""+asn+"""<br />").openPopup(); """
|
||||
point = """ L.marker(["""+latitude+""", """+longitude+"""]).addTo(map)
|
||||
.bindPopup("<b>"""+server_name+"""</b><br />"""+hop_ip+"""<br />"""+asn+"""<br />").openPopup(); """
|
||||
|
||||
latlong = [float(latitude.encode('utf-8')), float(longitude.encode('utf-8'))]
|
||||
geoarray.append(latlong)
|
||||
|
||||
hoplist.append(point)
|
||||
|
||||
b = b+point
|
||||
|
||||
|
||||
test = open('test.html','w')
|
||||
latlong = [float(latitude.encode('utf-8')), float(longitude.encode('utf-8'))]
|
||||
geoarray.append(latlong)
|
||||
|
||||
hoplist.append(point)
|
||||
b = b+point
|
||||
|
||||
output = """
|
||||
<html>
|
||||
@ -78,6 +69,3 @@ output = """
|
||||
</body>
|
||||
</html>
|
||||
"""
|
||||
|
||||
test.write(output)
|
||||
test.close
|
Loading…
Reference in New Issue
Block a user