#!/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)