63 lines
1.5 KiB
Python
Executable File
63 lines
1.5 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):
|
|
if inData.lower() == "quit":
|
|
quit()
|
|
#Assume the input is a domain name
|
|
result = domainWhois(inData)
|
|
# for results in result:
|
|
# for item in result[results]:
|
|
# print('%s: %s' % (results, item))
|
|
printWhois(result)
|
|
#print(result)
|
|
|
|
signal.signal(signal.SIGINT, signal_handler)
|
|
|
|
jsonData = config.readConf()
|
|
#pprint(jsonData)
|
|
subdomains = jsonData["subdomains"]
|
|
dnsrecords = jsonData["dnsrecords"]
|
|
|
|
|
|
print "root"
|
|
for rdata in dns.resolver.query('yahoo.com', 'A') :
|
|
print rdata
|
|
for sub in subdomains:
|
|
print sub
|
|
try:
|
|
for rdata in dns.resolver.query(sub + '.yahoo.com', 'CNAME') :
|
|
print( rdata.target )
|
|
except:
|
|
pass
|
|
|
|
while running == 1:
|
|
parseInput(raw_input("\nPlease Enter a domain" + prompt) )
|