繁体   English   中英

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

[英]How can I get DNS records for a domain in python?

如何在 python 中获取区域的 DNS 记录? 我正在寻找类似于dig输出的数据。

试试dnspython库:

你可以在这里看到一些例子:

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

import dns.resolver

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

您可以使用 python 的套接字库从 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")

有关这方面的更多信息,请访问此页面https://docs.python.org/2/library/socket.html#:~:text=gethostbyaddr()%20supports%20both%20IPv4%20and%20IPv6.&text=Translate% 20a%20socket%20address%20sockaddr,或%20a%20numeric%20port%20number

您的另一个选择是pydns ,但最后一个版本是 2008 年的,所以 dnspython 可能是一个更好的选择(我只提到这一点,以防 dnspython 不会让你的船浮起来)。

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM