Last active
January 17, 2024 12:11
-
-
Save Yeeb1/2a15989c43df34210bdd5a10e5261239 to your computer and use it in GitHub Desktop.
its dig ok?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import argparse | |
import dns.resolver | |
def dump_all_dns_records(domain): | |
record_types = ['A', 'AAAA', 'MX', 'NS', 'TXT', 'CNAME', 'SOA'] | |
all_records = {} | |
for record_type in record_types: | |
try: | |
answers = dns.resolver.resolve(domain, record_type, raise_on_no_answer=False) | |
if answers.rrset is not None: | |
records = [str(r) for r in answers.rrset] | |
all_records[record_type] = records | |
except (dns.resolver.NoAnswer, dns.resolver.NoNameservers, dns.resolver.NXDOMAIN): | |
all_records[record_type] = ['No record found'] | |
return all_records | |
def main(): | |
parser = argparse.ArgumentParser(description="DNS Record Lookup Tool") | |
parser.add_argument("domain", type=str, help="Domain name to look up DNS records for") | |
args = parser.parse_args() | |
domain = args.domain | |
dns_records = dump_all_dns_records(domain) | |
print(f"DNS Records for {domain}:") | |
for record_type, records in dns_records.items(): | |
print(f"{record_type}: {records}") | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment