如何使用PHP或Python运行WHOIS查找?

6 php whois

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

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

我不太了解WHOIS查找(嗯,我知道他们做了什么,我只是不知道如何在PHP中运行它们),但我也可以查询另一个网站(甚至是我的一个)拥有,如果你能给我代码).

无论什么作品,请告诉我!最重要的是,我更喜欢它适合所有功能,并且它必须适合一个PHP文件/文档.

小智 10

使用php,您可以使用shell_exec来执行whois命令.

    <?php
    $whois = shell_exec("whois domain.net");
    echo '<pre>';
    print_r($whois);
    ?>
Run Code Online (Sandbox Code Playgroud)

  • 不,不要运行 whois 命令,不要使用编程语言中的库或在端口 43 上打开 TCP 套接字,请参阅 RFC3912 (2认同)
  • 因为您不需要这样做,因为您在语言中拥有执行此操作的所有内容:1)PHP 中有 whois 库,2)即使没有,whois 只是端口 43 上的 TCP 连接,因此很容易用任何语言做。相反,调用 shell 会给您带来所有这些缺点:性能较低(更多地使用 RAM、执行速度较低等)、安全性(这里您甚至不知道您运行的是哪个 whois 命令,路径不是绝对的)、限制(其中代码存在,可能没有 shell 或不允许 shell 访问,或者未安装 whois 命令等)。没有任何优点! (2认同)

小智 6

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

我之前使用过这门课,正是你想做的!

  • 请注意,无论您使用什么脚本,大多数 WHOIS 服务器都会对查询实施严格的限制(这些限制因服务器和 TLD 而异)。因此,如果您需要进行批量查询,您将开始看到某些版本的“WHOIS LIMIT EXCEEDED”错误。 (2认同)

Ant*_*ony 6

为了让 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>';
Run Code Online (Sandbox Code Playgroud)

  • 不,不要运行 whois 命令,使用编程语言中的库或在端口 43 上打开 TCP 套接字,请参阅 RFC3912 (2认同)