【问题标题】:Reverse IP lookup with PHP使用 PHP 反向查找 IP
【发布时间】:2011-03-25 13:56:56
【问题描述】:

在 PHP 中有一个功能可以对域名进行反向查找,以找出在托管域名的特定共享托管服务器上托管了多少网站。或者,一种使用 PHP 的方法?

现在,我已经知道提供此功能的在线服务。但是,我想自己编写一个脚本来完成。我就是想不通。

任何不建议使用第三方服务的建议都会很棒。

【问题讨论】:

  • 以前这可以通过 AXFR 实现。但是现在它在每个域权威和辅助名称服务器之间受到限制。同样很少使用 Apache 状态页面/日志访问偷偷配置域。所以,除非你自己建立一个巨大的 ip->domain 数据库,否则没有运气。
  • 单个共享主机服务器可能对每个虚拟主机具有不同的 IP 地址,因此我不确定您将获得的报告有多可靠和有用。

标签: php dns ip-address reverse-lookup


【解决方案1】:

在 PHP 中只需使用

$domain = gethostbyaddr($ip);

祝你好运!

【讨论】:

  • 不错..这应该是答案。
  • @Drmjo 这实际上并没有按照 OP 的要求做,所以不,它不应该是答案
  • @RiggsFolly 你是对的,我把它弄反了......但是这个功能确实解决了我的问题......
【解决方案2】:

没有万无一失的方法可以满足您的要求。

在 DNS 中,站点的 IP 地址(例如“1.5.7.9”)与域名(例如“9.7.5.1.in-addr.arpa”)相关联。此反向名称可能有指向该域名的 PTR 记录。因此,“example.com”可能会映射到带有 A 记录的“1.5.7.9”,而“9.7.5.1.in-addr.arpa”可能会指向“example.com”。

一个 IP 地址可能有多个 PTR 记录。但是,一般来说,他们没有。因此,要知道共享一个 IP 的所有域名的唯一方法是搜索并记住所有域名(不可行),或者从其他来源获取信息。

此外,给定的计算机可能分配有许多 IP。没有办法知道有多少。

【讨论】:

    【解决方案3】:

    它确实可以...使用它的示例程序是我知道的 Python darkjumper

    我不知道它是如何工作的,但它只是工作..您可以阅读Python中的源代码并将软件重写为php

    您可以尝试使用 -m reverseonly 选项执行此软件的反向 ip 功能

    ./darkjumper.py -t stackoverflow.com -m reverseonly 返回结果

    [+] Target set : stackoverflow.com
    [+] Use proxy  : None
    [+] Verbocity  : False
    [+] Trying reverse your target's ip...
    [+] Please wait...
    -----------------------------------------
    http://stackoverflow.com
    http://gadgets.stackexchange.com
    http://webmasters.stackexchange.com
    http://stats.stackexchange.com
    http://gaming.stackexchange.com
    http://gamedev.stackexchange.com
    http://photo.stackexchange.com
    http://cooking.stackexchange.com
    http://chat.meta.stackoverflow.com
    http://stackoverflow.com
    http://stackoverflow.com
    
    ----------------------------------------
    [+] Found : 12  Domains hosted at this IP
    ----------------------------------------
    

    【讨论】:

    • 并不总是有效。相当复杂的猜测,不过:-)。
    • @Borealid:据我了解,它只是尝试跟踪域中的前 50 个链接并将它们与 IP 地址匹配?这似乎没有那么“复杂”。
    • @Alix Axel:就像我说的,复杂的猜测。它比仅仅读取 PTR 记录更智能,但是对于不相关域的虚拟服务器,它不会从另一个获取一个。
    【解决方案4】:

    也许我错了,但我认为 (the / one) 方法是单独查询每个域名并存储相应的 IP 地址。

    当有人查询任何给定的域/IP 地址时,您只需显示共享同一 IP 的所有其他域,如果您尚未列出该域,则只需解析 IP 并存储它。

    解决@sarnold 提到的问题也很容易(并且相对较快),只需更新与被查询域的同一 IP 地址中的所有域 - 或者只是域本身,可能使用每天更新 1 次或类似的限制。

    【讨论】:

      【解决方案5】:

      我很好奇怎么会有人知道:托管网站可以很快地在 IP 上来来去去。在这一分钟添加几千个域并在下一分钟再次将它们全部删除是很容易的。

      你见过http://pink.bikeshed.com吗?还是http://red.bikeshed.com?还是http://white.bikeshed.com?将它扩展到我的 X11 rgb.txt 文件中的所有 754 个条目会非常容易,尽管他们似乎没有这样做。支持用户在那里创建“新网站”还需要做更多的工作......

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-28
        • 2011-04-07
        • 1970-01-01
        • 1970-01-01
        • 2010-10-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多