Files
dns_compare/dns_compare.py
T
2026-08-11 13:49:00 -04:00

29 lines
1005 B
Python
Executable File

#!/usr/bin/env python
import argparse
import dns.query
import re
parser = argparse.ArgumentParser()
parser.add_argument('--domain', help='Helps if all records to query are on the same domain.')
parser.add_argument('--nameservers', nargs='+', help='IPv4 or IPv6 address of nameserver(s) to be queried.')
parser.add_argument('--records', nargs='+', help='Hostname to query.')
args = parser.parse_args()
if args.domain:
for rec in args.records:
qname = dns.name.from_text(f'{rec}.{args.domain}')
q = dns.message.make_query(qname, dns.rdatatype.A)
for ns in args.nameservers:
r = dns.query.udp(q, ns)
x = re.findall(fr'{str(rec)}.*', str(r))
print(x, ns)
else:
for rec in args.records:
qname = dns.name.from_text(rec)
q = dns.message.make_query(qname, dns.rdatatype.A)
for ns in args.nameservers:
r = dns.query.udp(q, ns)
x = re.findall(fr'{str(rec)}.*', str(r))
print(x, ns)