python - 如何使用 dnspython 查询域的所有 IP

标签 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]

最佳答案

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

关于python - 如何使用 dnspython 查询域的所有 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49598223/

相关文章:

java - 无法通过 Windows 10 和 DLINK DIR-615 路由器中的 Java 代码获取 DNS 请求

创建 DNS 响应消息

python - 为什么 __getitem__(key) 和 get(key) 比 [key] 慢很多?

python - 如何在 Python 中对作为洛伦兹和余弦乘积的函数进行数值积分?

python - 如何使用strided_slice选择tensorflow中的所有元素?

sockets - 进程终止时是否有必要关闭 gen_tcp 连接?

sockets - 数据包与 TCP 选择性确认的交互如何工作?

dns - DMARC/SPF 配置错误

shell - 将主机名解析为 IP 地址的可移植方法

python - 使用 Python Sphinx 引用长名称