show text instead of just rcode + use None instead of [None] if nserver of domain doesn't have an ip

This commit is contained in:
lare 2023-03-17 19:29:36 +01:00
parent fa1575d6d0
commit 4b87f77360

View file

@ -17,6 +17,7 @@ try:
import dns.message import dns.message
import dns.resolver import dns.resolver
import dns.rdatatype import dns.rdatatype
import dns.rcode
except ImportError: except ImportError:
print() print()
print("CRITICAL: this script requires the 'dnspython' libary, please install it using `python3 -m pip install dnspython`") print("CRITICAL: this script requires the 'dnspython' libary, please install it using `python3 -m pip install dnspython`")
@ -76,7 +77,9 @@ def get_domain_by_mntner(mntner):
if line.startswith("nserver"): if line.startswith("nserver"):
_tmp = _parse_nserver(line) _tmp = _parse_nserver(line)
if _tmp == "break": break if _tmp == "break": break
if _tmp[0] in domains[domain_name]["nserver"]: if _tmp[1] == None:
domains[domain_name]["nserver"][_tmp[0]] = None
elif _tmp[0] in domains[domain_name]["nserver"]:
domains[domain_name]["nserver"][_tmp[0]].append(_tmp[1]) domains[domain_name]["nserver"][_tmp[0]].append(_tmp[1])
else: else:
domains[domain_name]["nserver"][_tmp[0] domains[domain_name]["nserver"][_tmp[0]
@ -197,7 +200,7 @@ def get_dnskey(domain_name, nserver):
if response[0].rcode() != 0: if response[0].rcode() != 0:
# HANDLE QUERY FAILED (SERVER ERROR OR NO DNSKEY RECORD) # HANDLE QUERY FAILED (SERVER ERROR OR NO DNSKEY RECORD)
print( print(
f"WARN: query for a DNSKEY on {domain_name} failed on {nserver}, returncode: {response[0].rcode()}") f"WARN: query for a DNSKEY on {domain_name} failed on {nserver}, returncode: {dns.rcode.to_text(response[0].rcode())}")
errors += 1 errors += 1
return False return False
return [dnskey.to_text().split("IN DNSKEY ")[1] for dnskey in response[0].answer] return [dnskey.to_text().split("IN DNSKEY ")[1] for dnskey in response[0].answer]