Implemented ip address lookups

Fixed some crappy code
TODO: Clean up current code

Fixed input not being stripped
Moved the dns lookup code
Moved the whois lookup code

Cleaned everythin up
This commit is contained in:
Benjamyn Love 2018-03-18 22:42:27 +11:00
parent 8727e66ffb
commit 003a2cd29f

58
main.py
View File

@ -4,6 +4,10 @@ import readline
import signal import signal
import dns.resolver import dns.resolver
import json import json
import warnings
from dns import reversename
from ipwhois.net import Net
from ipwhois.asn import IPASN
from pprint import pprint from pprint import pprint
from libs import config from libs import config
@ -30,17 +34,24 @@ def printWhois(resultData):
def parseInput(inData): def parseInput(inData):
tmpInData = inData.lower() tmpInData = inData.lower()
tmpInData = tmpInData.strip()
if tmpInData == "quit": if tmpInData == "quit":
quit() quit()
try: if checkIfIP(tmpInData):
result = domainWhois(inData) ##IP lookup code
except Exception as E: print("Got IP address")
print('%s : TLD most likely needs configuring' % (E)) with warnings.catch_warnings():
result = "Error" warnings.filterwarnings("ignore", category=UserWarning)
print("\nWhos Info") ipnet = Net(tmpInData)
printWhois(result) ipobj = IPASN(ipnet)
print("\nDNS Records") results = ipobj.lookup()
recLookup(inData) for key,value in results.iteritems():
print('%s: %s' % (key, value))
rev_name = reversename.from_address(tmpInData)
reverseName = str(dns.resolver.query(rev_name, "PTR")[0])
print('\nPTR: %s' % (reverseName))
else:
lookupDomain(tmpInData)
def recLookup(inData): def recLookup(inData):
for dnsrec in dnsrecords: for dnsrec in dnsrecords:
@ -50,9 +61,38 @@ def recLookup(inData):
except Exception as e: except Exception as e:
pass pass
def lookupDomain(inData):
try:
result = domainWhois(inData)
except Exception as E:
print('%s : TLD most likely needs to be configured' % (E))
result = "Error"
print("\nWhois Information")
printWhois(result)
print("\nDNS Records")
recLookup(inData)
# Taken and modified from DNSpy 1, I am not asahmed it works
def checkIfIP(in1):
count = 0
inSplit = in1.split('.')
if len(inSplit) != 4:
return False
for part in inSplit:
if part.isdigit():
count += 1
else:
return False
if count == 4:
return True
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() jsonData = config.readConf()
#pprint(jsonData) #pprint(jsonData)
subdomains = jsonData["subdomains"] subdomains = jsonData["subdomains"]