【问题标题】:How can I query all IPs for a domain using dnspython如何使用 dnspython 查询域的所有 IP
【发布时间】:2018-09-10 21:35:45
【问题描述】:

我使用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 sockets dns network-programming dnspython


【解决方案1】:

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

【讨论】:

  • 不能再同意了。这个SO answer 也有同样的解释。
  • 同意以上观点。他们使用 geoip 负载平衡为您提供最近的服务器。再加上anycast dns。这不仅对您的 python 脚本有用,而且对全球的 ips 查询有用:whatsmydns.net
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-26
  • 2019-11-26
  • 2018-11-12
  • 1970-01-01
  • 2011-07-21
  • 2011-05-03
相关资源
最近更新 更多