DNS-py2/main.py

69 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
running = 0
prompt = '$ '
indent = '~ '
whoisrecs = ["NotFound", "DomainName", "Registrar", "Status", "UpdatedDate", "CreationDate", "ExpirationDate", "RegistrantName", "EligibilityName", "Eligibilitytype", "NameServer"]
subdomains = ["www", "mail", "ftp"]
dnsrecords = ["A", "MX", "TXT", "NS", "SOA"]
def openFile(path):
try:
myfile = open(path)
except Exception as E:
print E + "< - most likely file not found"
pass
return myfile
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):
try:
for recType in whoisrecs:
for item in resultData[recType]:
print(indent + '%s: %s' % (recType, 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 = json.loads(openFile("config.json").read())
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("Please Enter a domain" + prompt) )