DNS-py2/main.py

58 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()
result = domainWhois(inData)
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) )