From 897e34c2af71d63386e8fa1df06ecea5a336e275 Mon Sep 17 00:00:00 2001 From: Benjamyn Love Date: Fri, 23 Mar 2018 05:32:04 +1100 Subject: [PATCH] Added CNAME->A record function and implemented the lookup chain from CNAME -> A record for all applicable records. this can most likely be done much cleaner, this is a future Ben problem --- TODO | 4 ++++ main.py | 22 +++++++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 TODO diff --git a/TODO b/TODO new file mode 100644 index 0000000..ec756cc --- /dev/null +++ b/TODO @@ -0,0 +1,4 @@ +#TODO +Clean up messy as fuck code, you cannot code well tired, idiot -_- + +NOTE: music helps a lot diff --git a/main.py b/main.py index 36f92a6..6086612 100755 --- a/main.py +++ b/main.py @@ -53,6 +53,11 @@ def printWhois(resultData): except Exception as e: pass +def cnameToA(cname): + data = dns.resolver.query(cname, "A") + for rdata in data: + return rdata + def parseInput(inData): tmpInData = inData.lower() tmpInData = tmpInData.strip() @@ -67,8 +72,18 @@ def parseInput(inData): def recLookup(inData): for dnsrec in dnsrecords: try: - for rdata in dns.resolver.query(inData, dnsrec): - print( indent + colour_pretty + "%s:\t%s%s" % (dnsrec, colour_good, rdata) + colour_default) + data = dns.resolver.query(inData, dnsrec) + for rdata in data: + rdataTMP = rdata.to_text().split(" ") + if dnsrec != "MX": + if dnsrec != "NS": + print( indent + colour_pretty + "%s:\t%s%s" % (dnsrec, colour_good, rdata) + colour_default) + else: + tmpData = cnameToA(rdata.to_text()) + print( indent + colour_pretty + "%s:\t%s%s -> %s" % (dnsrec, colour_good, rdata, tmpData) + colour_default) + else: + tmpData = cnameToA(rdataTMP[1]) + print( indent + colour_pretty + "%s:\t%s%s -> %s" % (dnsrec, colour_good, rdata, tmpData) + colour_default) except Exception as e: pass @@ -81,7 +96,8 @@ def subLookup(inData, sub): record = rdata else: for rdata in dns.resolver.query(sub + '.' + inData, "CNAME"): - record = rdata + record = rdata.to_text() + record = record + " -> " + cnameToA(sub + "." + inData).to_text() print(indent + colour_pretty + "%s:\t%s%s" % (sub, colour_good, record) + colour_default) except Exception as e: pass