So many changes....
Made IP lookups much nicer to look at, added subdomain lookups Fixed some bugs with whois parsing, now AUS eligbility info is properly obtained
This commit is contained in:
parent
486f9d1017
commit
214be5a275
@ -3,6 +3,6 @@
|
||||
"dnsrecords":["A", "AAAA", "MX", "TXT", "NS", "SOA"],
|
||||
"colour_attn":"red",
|
||||
"colour_good":"green",
|
||||
"colour_pretty":"blue",
|
||||
"colour_pretty":"cyan",
|
||||
"colour_default":"reset"
|
||||
}
|
||||
|
||||
53
main.py
53
main.py
@ -15,7 +15,9 @@ from libs import colours as gc
|
||||
running = 1
|
||||
prompt = ': '
|
||||
indent = '~ '
|
||||
whoisrecs = ["NotFound", "DomainName", "Registrar", "Status", "UpdatedDate", "CreationDate", "ExpirationDate", "RegistrantName", "RegistrantEmail", "EligibilityName", "EligibilityType", "EligibilityID", "NameServer"]
|
||||
whoisrecs = ["NotFound", "DomainName", "Registrar", "Status", "UpdatedDate", "CreationDate", "ExpirationDate", "RegistrantName", "RegistrantEmail", "EligibilityName", "EligibilityType", "EligibilityID", "RegistrantID", "NameServer"]
|
||||
#ipData = ["asn_country_code", "asn_description"]
|
||||
ipData = {"asn_country_code":"Country", "asn_description":"Owner"}
|
||||
|
||||
# Loaded from the config file
|
||||
jsonData = config.readConf()
|
||||
@ -58,17 +60,7 @@ def parseInput(inData):
|
||||
quit()
|
||||
if checkIfIP(tmpInData):
|
||||
##IP lookup code
|
||||
print("Got IP address")
|
||||
with warnings.catch_warnings():
|
||||
warnings.filterwarnings("ignore", category=UserWarning)
|
||||
ipnet = Net(tmpInData)
|
||||
ipobj = IPASN(ipnet)
|
||||
results = ipobj.lookup()
|
||||
for key,value in results.iteritems():
|
||||
print('%s: %s' % (key, value))
|
||||
rev_name = reversename.from_address(tmpInData)
|
||||
reverseName = str(dns.resolver.query(rev_name, "PTR")[0])
|
||||
print('\nPTR: %s' % (reverseName))
|
||||
lookupIP(tmpInData)
|
||||
else:
|
||||
lookupDomain(tmpInData)
|
||||
|
||||
@ -80,6 +72,20 @@ def recLookup(inData):
|
||||
except Exception as e:
|
||||
pass
|
||||
|
||||
def subLookup(inData, sub):
|
||||
try:
|
||||
data = dns.resolver.query(sub + '.' + inData)
|
||||
for rdata in data:
|
||||
if data.qname == data.canonical_name:
|
||||
for rdata in dns.resolver.query(sub + '.' + inData):
|
||||
record = rdata
|
||||
else:
|
||||
for rdata in dns.resolver.query(sub + '.' + inData, "CNAME"):
|
||||
record = rdata
|
||||
print(indent + colour_pretty + "%s:\t%s%s" % (sub, colour_good, record) + colour_default)
|
||||
except Exception as e:
|
||||
pass
|
||||
|
||||
def lookupDomain(inData):
|
||||
try:
|
||||
result = domainWhois(inData)
|
||||
@ -90,6 +96,26 @@ def lookupDomain(inData):
|
||||
printWhois(result)
|
||||
print("\nDNS Records")
|
||||
recLookup(inData)
|
||||
print("\nSubDomains")
|
||||
for subs in subdomains:
|
||||
subLookup(inData, subs)
|
||||
|
||||
def lookupIP(inData):
|
||||
with warnings.catch_warnings():
|
||||
warnings.filterwarnings("ignore", category=UserWarning)
|
||||
ipnet = Net(inData)
|
||||
ipobj = IPASN(ipnet)
|
||||
results = ipobj.lookup()
|
||||
#for key,value in results.iteritems():
|
||||
# print('%s: %s' % (key, value))
|
||||
for types in ipData:
|
||||
print(indent + "%s%s:%s\t%s%s" % (colour_pretty, ipData[types], colour_good, results[types], colour_default))
|
||||
rev_name = reversename.from_address(inData)
|
||||
try:
|
||||
reverseName = str(dns.resolver.query(rev_name, "PTR")[0])
|
||||
except Exception as E:
|
||||
reverseName = E
|
||||
print('\n' + indent + '%sPTR:%s\t\t%s%s' % (colour_pretty, colour_good, reverseName, colour_default))
|
||||
|
||||
# Taken and modified from DNSpy 1, I am not asahmed it works
|
||||
def checkIfIP(in1):
|
||||
@ -108,4 +134,5 @@ def checkIfIP(in1):
|
||||
signal.signal(signal.SIGINT, signal_handler)
|
||||
|
||||
while running == 1:
|
||||
parseInput(raw_input("\nPlease Enter a domain" + prompt) )
|
||||
parseInput(raw_input("Please Enter a domain" + prompt) )
|
||||
print('\n')
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user