#!/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) )