added colours and made them configurable

This commit is contained in:
Benjamyn Love 2018-03-20 03:42:07 +11:00
parent dc51287f7b
commit 486f9d1017
4 changed files with 50 additions and 14 deletions

View File

@ -1,4 +1,8 @@
{ {
"subdomains":["www", "mail", "ftp"], "subdomains":["www", "mail", "ftp"],
"dnsrecords":["A", "AAAA", "MX", "TXT", "NS", "SOA"] "dnsrecords":["A", "AAAA", "MX", "TXT", "NS", "SOA"],
"colour_attn":"red",
"colour_good":"green",
"colour_pretty":"blue",
"colour_default":"reset"
} }

23
libs/colours.py Normal file
View File

@ -0,0 +1,23 @@
# Adds colours class
class bcolours:
RED = "\033[1;31m"
BLUE = "\033[1;34m"
CYAN = "\033[1;36m"
GREEN = "\033[0;32m"
RESET = "\033[0;0m"
BOLD = "\033[;1m"
REVERSE = "\033[;7m"
def getColour(colour):
colour = colour.lower()
if colour == "red":
return bcolours.RED
if colour == "blue":
return bcolours.BLUE
if colour == "cyan":
return bcolours.CYAN
if colour == "green":
return bcolours.GREEN
if colour == "reset":
return bcolours.RESET

BIN
libs/colours.pyc Normal file

Binary file not shown.

33
main.py
View File

@ -10,11 +10,24 @@ from ipwhois.net import Net
from ipwhois.asn import IPASN from ipwhois.asn import IPASN
from pprint import pprint from pprint import pprint
from libs import config from libs import config
from libs import colours as gc
running = 1 running = 1
prompt = ': ' prompt = ': '
indent = '~ ' indent = '~ '
whoisrecs = ["NotFound", "DomainName", "Registrar", "Status", "UpdatedDate", "CreationDate", "ExpirationDate", "RegistrantName", "EligibilityName", "EligibilityType", "EligibilityID", "NameServer"] whoisrecs = ["NotFound", "DomainName", "Registrar", "Status", "UpdatedDate", "CreationDate", "ExpirationDate", "RegistrantName", "RegistrantEmail", "EligibilityName", "EligibilityType", "EligibilityID", "NameServer"]
# Loaded from the config file
jsonData = config.readConf()
subdomains = jsonData["subdomains"]
dnsrecords = jsonData["dnsrecords"]
colour_attn = gc.getColour(jsonData["colour_attn"])
colour_good = gc.getColour(jsonData["colour_good"])
colour_pretty = gc.getColour(jsonData["colour_pretty"])
colour_default = gc.getColour(jsonData["colour_default"])
# Endconfig block
def domainWhois(inData): def domainWhois(inData):
whoisData = whois.whois(inData).query() whoisData = whois.whois(inData).query()
@ -28,6 +41,12 @@ def printWhois(resultData):
for x in range(0, len(whoisrecs)): for x in range(0, len(whoisrecs)):
try: try:
for item in resultData[whoisrecs[x]]: for item in resultData[whoisrecs[x]]:
if whoisrecs[x] == "Status":
if "ok" in item or "OK" in item:
print(indent + colour_good + '%s: %s' % (whoisrecs[x], item) + colour_default)
else:
print(indent + colour_attn + '%s: %s' % (whoisrecs[x], item) + colour_default)
else:
print(indent + '%s: %s' % (whoisrecs[x], item)) print(indent + '%s: %s' % (whoisrecs[x], item))
except Exception as e: except Exception as e:
pass pass
@ -57,7 +76,7 @@ def recLookup(inData):
for dnsrec in dnsrecords: for dnsrec in dnsrecords:
try: try:
for rdata in dns.resolver.query(inData, dnsrec): for rdata in dns.resolver.query(inData, dnsrec):
print( indent + "%s:\t%s" % (dnsrec, rdata)) print( indent + colour_pretty + "%s:\t%s%s" % (dnsrec, colour_good, rdata) + colour_default)
except Exception as e: except Exception as e:
pass pass
@ -88,15 +107,5 @@ def checkIfIP(in1):
signal.signal(signal.SIGINT, signal_handler) signal.signal(signal.SIGINT, signal_handler)
##
# Add more params to the config file
# Like indent/prompts etc
##
jsonData = config.readConf()
#pprint(jsonData)
subdomains = jsonData["subdomains"]
dnsrecords = jsonData["dnsrecords"]
while running == 1: while running == 1:
parseInput(raw_input("\nPlease Enter a domain" + prompt) ) parseInput(raw_input("\nPlease Enter a domain" + prompt) )