diff --git a/ns-tree.py b/ns-tree.py index 59f80f5615019593cc6ad5fbf5f0f05f482a1f9e..fbf0a7c4b34fe7e1d4a09dc4b784258e9fde3373 100755 --- a/ns-tree.py +++ b/ns-tree.py @@ -97,6 +97,9 @@ class Node: data = dict() for ns in self.ns_set: ns_zone = get_zone_name( ns ) + if not ns_zone: + print(f"Warning: could not resolve {ns} for zone {self.zone}") + continue if ns_zone not in data: data[ns_zone] = set() data[ns_zone].add(ns) @@ -126,7 +129,10 @@ class Edge: return s def get_zone_name( qname ): - ans = dns.resolver.resolve( qname, dns.rdatatype.SOA, raise_on_no_answer=False ) + try: + ans = dns.resolver.resolve( qname, dns.rdatatype.SOA, raise_on_no_answer=False ) + except Exception as e: + return None res = ans.response rrset = [] try: