如何在Python中获取域名的DNS记录?
我想知道怎么用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")
想了解更多信息:
socket.gethostbyaddr()
- 这个函数可以根据IP地址获取主机名。socket.gethostbyname()
- 这个函数可以根据主机名获取IP地址。
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)