diff --git a/config.json b/config.json index b626256..8ee6940 100644 --- a/config.json +++ b/config.json @@ -1,4 +1,8 @@ { "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" } diff --git a/libs/colours.py b/libs/colours.py new file mode 100644 index 0000000..757faf6 --- /dev/null +++ b/libs/colours.py @@ -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 diff --git a/libs/colours.pyc b/libs/colours.pyc new file mode 100644 index 0000000..59351a1 Binary files /dev/null and b/libs/colours.pyc differ diff --git a/main.py b/main.py index 560582b..35d3d9b 100755 --- a/main.py +++ b/main.py @@ -10,11 +10,24 @@ from ipwhois.net import Net from ipwhois.asn import IPASN from pprint import pprint from libs import config +from libs import colours as gc running = 1 prompt = ': ' 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): whoisData = whois.whois(inData).query() @@ -28,7 +41,13 @@ def printWhois(resultData): for x in range(0, len(whoisrecs)): try: for item in resultData[whoisrecs[x]]: - print(indent + '%s: %s' % (whoisrecs[x], item)) + 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)) except Exception as e: pass @@ -57,7 +76,7 @@ def recLookup(inData): for dnsrec in dnsrecords: try: 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: pass @@ -88,15 +107,5 @@ def checkIfIP(in1): 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: parseInput(raw_input("\nPlease Enter a domain" + prompt) )