【问题标题】:Reverse DNS lookup using dnspython module使用 dnspython 模块反向 DNS 查找
【发布时间】:2018-03-06 00:45:44
【问题描述】:

如何对给定 IP 进行反向 DNS 查找?

nslookup google.com 为我解析为 172.217.3.46。 但是当我使用 dnspython 模块时,

import dns.resolver
import dns.reversename

qname = dns.reversename.from_address('172.217.3.46')
answer = dns.resolver.query(qname, 'PTR')
for rr in answer:
    print(rr)

>> iad23s57-in-f14.1e100.net.
>> iad23s57-in-f46.1e100.net.

我得到不同的 DNS 名称。在这种情况下如何获取 google.com?

【问题讨论】:

  • 不保证反向查找会匹配正向查找。事实上,对于大型网站,几乎可以保证不会。
  • 请注意,1e100 是一个数学符号,表示 Google 取自公司名称的数字。这是他们的基础设施领域之一。

标签: python


【解决方案1】:

您的结果是正确的。您正在查询的主机的反向 IP 不指向您开始使用的正向名称。无法保证反向 PTR 存在,或者如果确实存在,您可以像预期的那样往返。

一个常见的场景是 HTTP 多宿主。一个网络服务器可以托管多个域;大型网络托管站点通常在他们拥有的每个 IP 地址上托管数百个域。任何随机 Web 主机的反向 DNS 在统计上可能类似于 webhotel2345.hosting.example.com.,而不是托管在那里的任何域的名称(但有时他们只是将反向 DNS 设置为他们托管在那里的第一个,或者第一个抱怨的客户他们也希望反向 DNS 检出)。

一些邮件服务器设置为拒绝来自其反向 DNS 不往返的主机的连接,作为(非常间接的)反垃圾邮件措施,但这具有相当高的误报率,并且被认为是激进的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 2016-09-24
    • 2012-08-12
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    相关资源
    最近更新 更多