# Author: Kerry Cordero
# Version: 1.0.0
# Description: This script prompts for the IP/FQDN, Record Type, DNS Server to use for lookups, and the Tool to use (NSLOOKUP, PowerShell, or DIG).
import subprocess
def perform_lookup(ip_or_fqdn, record_type, dns_server, lookup_tool):
if lookup_tool.lower() == 'nslookup':
process = subprocess.Popen(['nslookup', '-type='+record_type, ip_or_fqdn, dns_server], stdout=subprocess.PIPE)
output = process.communicate()[0]
print(output.decode('utf-8'))
elif lookup_tool.lower() == 'powershell':
command = f'Resolve-DnsName -Name {ip_or_fqdn} -Type {record_type} -Server {dns_server}'
process = subprocess.Popen(["powershell", command], stdout=subprocess.PIPE)
output = process.communicate()[0]
print(output.decode('utf-8'))
elif lookup_tool.lower() == 'dig':
process = subprocess.Popen(['dig', '+short', '-t', record_type, ip_or_fqdn, '@'+dns_server], stdout=subprocess.PIPE)
output = process.communicate()[0]
print(output.decode('utf-8'))
else:
print(f'Unsupported lookup tool: {lookup_tool}')
def main():
ip_or_fqdn = input('Enter IP or FQDN: ')
record_type = input('Enter Record Type: ')
dns_server = input('Enter the DNS Server to Use for these lookups: ')
lookup_tool = input('Enter the lookup tool to use (NSLOOKUP, PowerShell, or DIG): ')
perform_lookup(ip_or_fqdn, record_type, dns_server, lookup_tool)
if __name__ == "__main__":
main()
Make it pretty:
!Simple DNS tool that prompts for the IP/FQDN, Record Type, DNS Server to use for lookups, and the Tool to use (NSLOOKUP, PowerShell, or DIG).
!By: Kerry Cordero
import subprocess
from termcolor import colored
from pyfiglet import figlet_format
def perform_lookup(ip_or_fqdn, record_type, dns_server, lookup_tool):
output = None
if lookup_tool.lower() == 'nslookup':
process = subprocess.Popen(['nslookup', '-type='+record_type, ip_or_fqdn, dns_server], stdout=subprocess.PIPE)
output = process.communicate()[0]
elif lookup_tool.lower() == 'powershell':
command = f'Resolve-DnsName -Name {ip_or_fqdn} -Type {record_type} -Server {dns_server}'
process = subprocess.Popen(["powershell", command], stdout=subprocess.PIPE)
output = process.communicate()[0]
elif lookup_tool.lower() == 'dig':
process = subprocess.Popen(['dig', '+short', '-t', record_type, ip_or_fqdn, '@'+dns_server], stdout=subprocess.PIPE)
output = process.communicate()[0]
else:
print(colored(f'Unsupported lookup tool: {lookup_tool}', 'red'))
return
print(colored(output.decode('utf-8'), 'green'))
def main():
print(colored(figlet_format('DNS Lookup Tool', font='slant'), 'cyan'))
ip_or_fqdn = input('Enter IP or FQDN: ')
record_type = input('Enter Record Type: ')
dns_server = input('Enter the DNS Server to Use for these lookups: ')
lookup_tool = input('Enter the lookup tool to use (NSLOOKUP, PowerShell, or DIG): ')
print(colored("=======================================", 'yellow'))
perform_lookup(ip_or_fqdn, record_type, dns_server, lookup_tool)
if __name__ == "__main__":
main()