【问题标题】:How do I run a WHOIS lookup with PHP or Python?如何使用 PHP 或 Python 运行 WHOIS 查询?
【发布时间】:2011-07-18 02:23:28
【问题描述】:

所以无论如何,我正在开发一个小型 PHP 网站/脚本,作为其中一项功能,我希望能够在 PHP 脚本正在运行的当前域上运行 WHOIS 查找。

理想情况下,我可以调用一个函数,并在该函数中运行 WHOIS,然后将结果回显到屏幕上。它会输入站点的 URL 来运行 WHOIS 查找,或者它只会在当前的 URL/域(这是我想要的)上运行它,尽管如果需要我可以为它提供一个网站域的变量是.

我不太了解 WHOIS 查询(嗯,我知道它们的作用,只是不知道如何在 PHP 中运行它们),但我也可以查询另一个网站(甚至如果你能给我它的代码,我自己的一个)。

无论什么有效,请告诉我!主要的是,我更希望它能够在一个函数中包含所有内容,而且它肯定必须适合一个 PHP 文件/文档。

【问题讨论】:

    标签: php whois


    【解决方案1】:

    使用 php 你可以使用 shell_exec 来执行 whois 命令。

        <?php
        $whois = shell_exec("whois domain.net");
        echo '<pre>';
        print_r($whois);
        ?>
    

    【讨论】:

    • 不,不要运行 whois 命令,使用编程语言中的库或在端口 43 上打开 TCP 套接字,请参阅 RFC3912
    • 因为您不需要这样做,因为您拥有语言中的所有内容来执行此操作:1)PHP 中有 whois 库,2)即使没有,whois 也只是一个 TCP 连接在端口 43 上,因此使用任何语言都很容易做到这一点。相反,调用 shell 会给您带来所有这些缺点:性能较低(更多地使用 RAM,执行速度较低等),安全性(在这里您甚至不知道您运行的是哪个 whois 命令,路径不是绝对的),限制(其中代码存在,可能没有 shell 或不允许 shell 访问,或者没有安装 whois 命令等)。没有优势!
    • @PatrickMevzek 那么你为什么不展示一个更好的方法而不是给出这些一般性呢?
    • @c00000fd 在我的第一条评论“使用编程语言中的库或在端口 43 上打开 TCP 套接字”时,您觉得不够具体吗?
    【解决方案2】:

    这应该完全符合您的要求...http://www.phpwhois.org/

    我以前用过这个类,做你想做的事!

    【讨论】:

    • 效果惊人,谢谢!我不得不对其进行一些更改以使其适合我的网站,但仍然可以正常工作!
    • 很高兴它对你有用!它应该符合您的空间/文件要求。如果没有,我相信我们都可以帮助您做到这一点。
    • 请注意,无论您使用什么脚本,大多数 WHOIS 服务器都会对查询实施严格限制(这些限制因服务器和 TLD 而异)。因此,如果您需要进行批量查询,您将开始看到某些版本的“WHOIS LIMIT EXCEEDED”错误。
    • 为了避免这种限制,可以使用whois-api
    【解决方案3】:

    让 Pavels 回答更进一步 - 这会将其分解为一个数组:

    $whois = shell_exec("whois 45.118.135.255");
    
    $result = explode("\n",$whois);
    
    $out = array();
    foreach ($result as $line){
        if (substr($line,0,1) == '%' || substr($line,0,1) == '#'){ continue; }
    
        $ps = explode(':',$line);
        $out[trim($ps[0])] = trim($ps[1]);
    }
    
    print '<pre>'; print_r($out); print '</pre>';
    

    【讨论】:

    • 不,不要运行 whois 命令,使用编程语言中的库或在端口 43 上打开 TCP 套接字,请参阅 RFC3912
    【解决方案4】:

    最好的办法是使用pywhois。尽管您在问题标题中说 Python,但在帖子中没有提及。如果你真的需要 PHP,我相信有一些等价的东西。

    【讨论】:

    • 是的,我认为我需要 PHP 而不是 Python,但我认为我仍然可以使用 pywhois,只是不在这个特定项目中。谢谢!
    【解决方案5】:

    【讨论】:

      【解决方案6】:

      我在这里找到它:https://whoisfreaks.com/documentation/api/whois-api.html。您可以通过以下代码 sn-p 使用 PHP 获取 Whoislook:

           'https://api.whoisfreaks.com/v1.0/whois?whois=live&domainName=jfreaks.com&apikey=Your API_Key',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'GET',
      ));
      
      $response = curl_exec($curl);
      
      curl_close($curl);
      echo $response;
      

      我希望它也对你有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-11
        • 1970-01-01
        • 2020-11-02
        相关资源
        最近更新 更多