如何使用 dnspython 查询某个域的所有 IP

Non*_*one 1 python sockets dns network-programming dnspython

我使用dnspython查询 DNS 服务器以将域名解析为其 IP。

当我尝试解析“google.co.uk”时,我只得到一个 IP。然而,使用另一个解析器工具我得到另一个IP。两个IP都是正确的,我通过将IP放在浏览器中来测试它们,都打开“google.co.uk”。

显然,为我正在测试的域名分配了多个IP。有什么方法可以在 dnspython 中使用来检索给定域名的所有 IP 吗?

这是我的简单脚本:

import dns.resolver

def resolve(domain):
  resolveList = []
      resolver = dns.resolver.Resolver(); #create a new instance named Resolver
      answer = resolver.query(domain,"A");
      y=0
      for rData in answer: 
          resolveList.append(rData)
          ++y        
  return resolveList

domainName = "google.co.uk"
queryResult = resolve(domainName);
for result in queryResult:
    print queryResult[0]
Run Code Online (Sandbox Code Playgroud)

tri*_*eee 5

在一般情况下,不会,无法知道您何时已详尽枚举了特定主机名正在使用的所有 IP 地址。谷歌就是一个很好的例子;根据您在世界上的位置及其当前负载,它们将返回部分(但不是全部)地址,用于负载平衡和类似目的。