63 lines
1.6 KiB
Python
Executable File
63 lines
1.6 KiB
Python
Executable File
#!/usr/bin/python2.7
|
|
import whois
|
|
import readline
|
|
import signal
|
|
import dns.resolver
|
|
import json
|
|
from pprint import pprint
|
|
from libs import config
|
|
|
|
running = 1
|
|
prompt = ': '
|
|
indent = '~ '
|
|
whoisrecs = ["NotFound", "DomainName", "Registrar", "Status", "UpdatedDate", "CreationDate", "ExpirationDate", "RegistrantName", "EligibilityName", "Eligibilitytype", "NameServer"]
|
|
|
|
def domainWhois(inData):
|
|
whoisData = whois.whois(inData).query()
|
|
return whois.Parser(inData, whoisData[1]).parse()
|
|
|
|
def signal_handler(singal, frame):
|
|
#print('\n')
|
|
quit()
|
|
|
|
def printWhois(resultData):
|
|
for x in range(0, len(whoisrecs)):
|
|
try:
|
|
for item in resultData[whoisrecs[x]]:
|
|
print(indent + '%s: %s' % (whoisrecs[x], item))
|
|
except Exception as e:
|
|
pass
|
|
|
|
def parseInput(inData):
|
|
tmpInData = inData.lower()
|
|
if tmpInData == "quit":
|
|
quit()
|
|
try:
|
|
result = domainWhois(inData)
|
|
except Exception as E:
|
|
print('%s : TLD most likely needs configuring' % (E))
|
|
result = "Error"
|
|
print("\nWhos Info")
|
|
printWhois(result)
|
|
print("\nDNS Records")
|
|
recLookup(inData)
|
|
|
|
def recLookup(inData):
|
|
for dnsrec in dnsrecords:
|
|
try:
|
|
for rdata in dns.resolver.query(inData, dnsrec):
|
|
print( indent + "%s:\t%s" % (dnsrec, rdata))
|
|
except Exception as e:
|
|
pass
|
|
|
|
|
|
signal.signal(signal.SIGINT, signal_handler)
|
|
|
|
jsonData = config.readConf()
|
|
#pprint(jsonData)
|
|
subdomains = jsonData["subdomains"]
|
|
dnsrecords = jsonData["dnsrecords"]
|
|
|
|
while running == 1:
|
|
parseInput(raw_input("\nPlease Enter a domain" + prompt) )
|