diff --git a/fierce/fierce.py b/fierce/fierce.py index 6c32e36..7754452 100755 --- a/fierce/fierce.py +++ b/fierce/fierce.py @@ -6,6 +6,7 @@ import http.client import ipaddress import itertools +from logging import warning import multiprocessing import os import pprint @@ -13,6 +14,7 @@ import socket import sys import time +import warnings import dns.exception import dns.name @@ -110,7 +112,7 @@ def concatenate_subdomains(domain, subdomains): def query(resolver, domain, record_type='A', tcp=False): try: - resp = resolver.query(domain, record_type, raise_on_no_answer=False, tcp=tcp) + resp = resolver.resolve(qname=domain, rdtype=record_type, raise_on_no_answer=False, tcp=True) if resp.response.answer: return resp @@ -321,6 +323,9 @@ def fierce(**kwargs): master = query(resolver, soa_mname, record_type='A', tcp=kwargs["tcp"]) master_address = master[0].address print("SOA: {} ({})".format(soa_mname, master_address)) + if master_address == "127.0.0.1": + warning("Master address is localhost, switching to provided resolver (%s) instead" % resolver.nameservers[0]) + master_address = resolver.nameservers[0] else: print("SOA: failure") fatal("Failed to lookup NS/SOA, Domain does not exist") diff --git a/requirements.txt b/requirements.txt index 2214373..c76555b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -dnspython==1.16.0 +dnspython==2.2.1