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

Dav*_*gac 11 python dns

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

ars*_*ars 13

试试dnspython图书馆:

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

  • 是的,好的图书馆,但不要忘记还有其他人.例如http://pydns.sourceforge.net/ (3认同)

Wil*_*lem 5

来自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)
Run Code Online (Sandbox Code Playgroud)


小智 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")
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息:

  • 这不会获取 DNS 记录,而是将名称或 IP 地址解析为单个记录。这适合获取要连接的单个地址,但对于检索 DNS 记录来说级别太高。 (4认同)

小智 2

你的另一个选择是pydns,但最后一个版本是 2008 年的,所以 dnspython 可能是一个更好的选择(我只是在 dnspython 无法让你满意的情况下才提到这一点)。