Adjusted template (dns.html) for DNS and whois

Adjusted main.py to return values instead of print them
This commit is contained in:
Benjamyn Love 2018-05-13 23:43:59 +10:00
parent b704eea43f
commit e62b756155
4 changed files with 33 additions and 14 deletions

9
gui.py
View File

@ -8,12 +8,13 @@ def index():
if request.method == 'POST': if request.method == 'POST':
data = request.form['domain'] data = request.form['domain']
print(data) print(data)
dnsinfo = dnspy.domainWhois(str(data)) dnsinfo, whois = dnspy.lookupDomain(str(data))
#dnsinfo = {"." : "."} #dnsinfo = {"." : "."}
return render_template('dns.html', dnsinfo=dnsinfo) return render_template('dns.html', whois=whois, dnsinfo=dnsinfo)
else: else:
dnsinfo = {"Status" : "Please enter a domain"} whois = {"Status" : "Please enter a domain"}
return render_template('dns.html', dnsinfo=dnsinfo) dnsinfo = {"Stub" : "Data"}
return render_template('dns.html', whois=whois, dnsinfo=dnsinfo)
@app.route('/domain/', methods=['POST', 'GET']) @app.route('/domain/', methods=['POST', 'GET'])
def getDomain(): def getDomain():

32
main.py
View File

@ -1,4 +1,5 @@
#!/usr/bin/python2.7 #!/usr/bin/python2.7
#GUI REWRITE
import whois import whois
import signal import signal
import dns.resolver import dns.resolver
@ -26,6 +27,8 @@ colour_default = gc.getColour(jsonData["colour_default"])
CSVFile = jsonData["country_codes"] CSVFile = jsonData["country_codes"]
# Endconfig block # Endconfig block
dnsrecs = {}
if platform.system().lower() == "linux": if platform.system().lower() == "linux":
import readline import readline
else: else:
@ -79,6 +82,7 @@ def parseInput(inData):
lookupDomain(tmpInData) lookupDomain(tmpInData)
def recLookup(inData): def recLookup(inData):
global dnsrecs
for dnsrec in dnsrecords: for dnsrec in dnsrecords:
try: try:
data = dns.resolver.query(inData, dnsrec) data = dns.resolver.query(inData, dnsrec)
@ -86,41 +90,51 @@ def recLookup(inData):
rdataTMP = rdata.to_text().split(" ") rdataTMP = rdata.to_text().split(" ")
if dnsrec != "MX": if dnsrec != "MX":
if dnsrec != "NS": if dnsrec != "NS":
print( indent + colour_pretty + "%s:\t%s%s" % (dnsrec, colour_good, rdata) + colour_default) #print( indent + colour_pretty + "%s:\t%s%s" % (dnsrec, colour_good, rdata) + colour_default)
dnsrecs[dnsrec] = rdata
else: else:
tmpData = cnameToA(rdata.to_text()) tmpData = cnameToA(rdata.to_text())
print( indent + colour_pretty + "%s:\t%s%s -> %s" % (dnsrec, colour_good, rdata, tmpData) + colour_default) #print( indent + colour_pretty + "%s:\t%s%s -> %s" % (dnsrec, colour_good, rdata, tmpData) + colour_default)
dnsrecs[dnsrec] = rdata
else: else:
tmpData = cnameToA(rdataTMP[1]) tmpData = cnameToA(rdataTMP[1])
print( indent + colour_pretty + "%s:\t%s%s -> %s" % (dnsrec, colour_good, rdata, tmpData) + colour_default) #print( indent + colour_pretty + "%s:\t%s%s -> %s" % (dnsrec, colour_good, rdata, tmpData) + colour_default)
dnsrecs[dnsrec] = rdata
except Exception as e: except Exception as e:
pass pass
def subLookup(inData, sub): def subLookup(inData, sub):
global dnsrecs
try: try:
data = dns.resolver.query(sub + '.' + inData) data = dns.resolver.query(sub + '.' + inData)
for rdata in data: for rdata in data:
if data.qname == data.canonical_name: if data.qname == data.canonical_name:
print(indent + colour_pretty + "%s:\t%s%s" % (sub, colour_good, rdata) + colour_default) #Old function printed the result now I am returning the result, may add to a dict.
#print(indent + colour_pretty + "%s:\t%s%s" % (sub, colour_good, rdata) + colour_default)
dnsrecs[sub] = rdata
else: else:
for rdata in dns.resolver.query(sub + '.' + inData, "CNAME"): for rdata in dns.resolver.query(sub + '.' + inData, "CNAME"):
print(indent + colour_pretty + "%s:\t%s%s -> %s" % (sub, colour_good, rdata, cnameToA(sub + "." + inData).to_text()) + colour_default) #print(indent + colour_pretty + "%s:\t%s%s -> %s" % (sub, colour_good, rdata, cnameToA(sub + "." + inData).to_text()) + colour_default)
dnsrecs[sub] = rdata
except Exception as e: except Exception as e:
pass pass
def lookupDomain(inData): def lookupDomain(inData):
global dnsrecs
dnsrecs = {}
try: try:
result = domainWhois(inData) result = domainWhois(inData)
except Exception as E: except Exception as E:
print('%s : TLD most likely needs to be configured' % (E)) print('%s : TLD most likely needs to be configured' % (E))
result = "Error" result = "Error"
print("\nWhois Information") #print("\nWhois Information")
printWhois(result) #printWhois(result)
print("\nDNS Records") #print("\nDNS Records")
recLookup(inData) recLookup(inData)
print("\nSub Domains") #print("\nSub Domains")
for subs in subdomains: for subs in subdomains:
subLookup(inData, subs) subLookup(inData, subs)
return dnsrecs, result
def lookupIP(inData): def lookupIP(inData):
with warnings.catch_warnings(): with warnings.catch_warnings():

BIN
main.pyc

Binary file not shown.

View File

@ -25,7 +25,7 @@
<div class="container records justify-content-between row col-centered" style="width: 70%;"> <div class="container records justify-content-between row col-centered" style="width: 70%;">
<div class="column rounded"> <div class="column rounded">
<b>Whois Information:</b> <b>Whois Information:</b>
{% for key, value in dnsinfo.iteritems() %} {% for key, value in whois.iteritems() %}
<li><b>{{ key }} </b> - {{ value }}</li> <li><b>{{ key }} </b> - {{ value }}</li>
{% endfor %} {% endfor %}
</div> </div>
@ -33,6 +33,10 @@
</div> </div>
<div class="column rounded"> <div class="column rounded">
<b>DNS Records</b> <b>DNS Records</b>
{% for key, value in dnsinfo.iteritems() %}
<li><b>{{ key }} </b> - {{ value }}</li>
{% endfor %}
</div> </div>
</div> </div>
<!-- Optional JavaScript --> <!-- Optional JavaScript -->