Skip to content

Instantly share code, notes, and snippets.

@meeuw
Created June 3, 2017 11:41
Show Gist options
  • Save meeuw/4da02290d2bd0f975a13437c04103dea to your computer and use it in GitHub Desktop.
Save meeuw/4da02290d2bd0f975a13437c04103dea to your computer and use it in GitHub Desktop.
script to query domain name on all available nameservers to check for zone transfer status
#!/home/meeuw/venv/dns/bin/python
import dns.resolver
import sys
import tld
if (len(sys.argv) > 2):
typ = sys.argv[2]
else:
typ = 'A'
answers = dns.resolver.query(
tld.get_tld(sys.argv[1], fix_protocol=True),
'NS'
)
nameservers = []
for rdata in answers:
nameservers.append(rdata.to_text())
nameservers_ip = {}
for ns in nameservers:
try:
answers = dns.resolver.query(ns, 'A')
except dns.resolver.NoAnswer:
pass
for rdata in answers:
nameservers_ip[ns] = rdata.to_text()
try:
answers = dns.resolver.query(ns, 'AAAA')
except dns.resolver.NoAnswer:
pass
for rdata in answers:
nameservers_ip[ns] = rdata.to_text()
for name, ip in nameservers_ip.items():
res = dns.resolver.Resolver(configure=False)
res.nameservers = [ip]
answers = res.query(sys.argv[1], typ)
for rdata in answers:
print (name, '\t', rdata)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment