commit 592e72a1d5c0a7a94fd391c194cf2f502cba1d6fd10f02c448fbf6fa23f62c98 Author: Discsearcher Date: Tue Aug 11 13:49:00 2026 -0400 Moved from bitbucket. diff --git a/dns_compare.py b/dns_compare.py new file mode 100755 index 0000000..46558ff --- /dev/null +++ b/dns_compare.py @@ -0,0 +1,28 @@ +#!/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)