如何在Python中获取域名的DNS记录?

21 投票
4 回答
46116 浏览
提问于 2025-04-15 13:03

我想知道怎么用Python获取一个区域的DNS记录。我想要的数据和dig命令的输出差不多。

4 个回答

3

现在不再推荐使用 dns.resolver.query 这个方法了,建议使用 dns.resolver.resolve 这个新的方法:

# python3 -m pip install dnspython

import dns.resolver

answers = dns.resolver.resolve("google.com", 'NS')
for server in answers:
    print(server.target)

5

你可以使用Python的socket库来从IP地址或域名获取DNS记录。

import socket

# if ip address is available
DNS_record = socket.gethostbyaddr("66.249.65.189")

# if domain name is available
DNS_record = socket.gethostbyname("google.com")

想了解更多信息:

10

这是一个来自 https://c0deman.wordpress.com/2014/06/17/find-nameservers-of-domain-name-python/ 的简单示例:

import dns.resolver
 
domain = 'google.com'
answers = dns.resolver.resolve(domain,'NS')
for server in answers:
    print(server.target)

撰写回答