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

问题描述 投票:0回答:8

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

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

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

无论什么有效,请告诉我!最主要的是,我希望它能适合所有功能,并且它绝对必须适合一个 PHP 文件/文档。

php whois
8个回答
12
投票

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

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

10
投票

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

我以前用过这个类,完全按照你想要的做!


5
投票

为了让 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>';

1
投票

有一些第三方软件包:

第一个:io-developer/php-whois

composer require io-developer/php-whois

用途:

// How to get summary about domain:

<?php

use Iodev\Whois\Factory;

// Creating default configured client
$whois = Factory::get()->createWhois();

// Checking availability
if ($whois->isDomainAvailable("google.com")) {
    print "Bingo! Domain is available! :)";
}

// Supports Unicode (converts to punycode)
if ($whois->isDomainAvailable("почта.рф")) {
    print "Bingo! Domain is available! :)";
}

// Getting raw-text lookup
$response = $whois->lookupDomain("google.com");
print $response->text;

// Getting parsed domain info
$info = $whois->loadDomainInfo("google.com");
print_r([
    'Domain created' => date("Y-m-d", $info->creationDate),
    'Domain expires' => date("Y-m-d", $info->expirationDate),
    'Domain owner' => $info->owner,
]);

// Exceptions on domain lookup:

<?php

use Iodev\Whois\Factory;
use Iodev\Whois\Exceptions\ConnectionException;
use Iodev\Whois\Exceptions\ServerMismatchException;
use Iodev\Whois\Exceptions\WhoisException;

try {
    $whois = Factory::get()->createWhois();
    $info = $whois->loadDomainInfo("google.com");
    if (!$info) {
        print "Null if domain available";
        exit;
    }
    print $info->domainName . " expires at: " . date("d.m.Y H:i:s", $info->expirationDate);
} catch (ConnectionException $e) {
    print "Disconnect or connection timeout";
} catch (ServerMismatchException $e) {
    print "TLD server (.com for google.com) not found in current server hosts";
} catch (WhoisException $e) {
    print "Whois server responded with error '{$e->getMessage()}'";
}

如果您使用 Laravel :laravel-whois

composer require larva/laravel-whois -vv

php artisan migrate

用途:

$info = \Larva\Whois\Whois::lookup('baidu.com', true);
$info = \Larva\Whois\Whois::lookupRaw('google.com');

0
投票

最好的办法是使用 pywhois。虽然你在问题标题中提到了Python,但在帖子中没有提及。如果您确实需要 PHP,我确信有等效的东西。


0
投票

我在这里找到它:https://whoisfreaks.com/documentation/api/whois-api.html。您可以通过以下代码片段使用 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;

我希望它也对你有用。


0
投票

进行 WHOIS 查找是通过 TCP 端口 43 发送请求字符串的简单考验,这可以使用简单的 PHP 套接字函数来完成,无需生成 shell 或使用任何外部工具/库。虽然查询本身很简单,但在如何执行查询方面需要考虑一些事情。

对于 IP 查找,您需要查询相关 IP 块所分配到的正确区域 WHOIS 服务器,这些服务器是:

  • ARIN 北美
  • RIPE 欧洲/中东/中亚
  • APNIC 亚太地区
  • LACNIC 拉丁美洲/加勒比地区
  • AFRINIC 代表非洲

对于域名查找,您需要查询给定 TLD 的正确 WHOIS 服务器。您还应该查询域名注册商的 WHOIS 服务器以获取域名本身的正确信息。

请参阅此简单示例了解基本 WHOIS 功能:whois.php(PHP >= 4.0)
它考虑了所有因素,因此始终会返回正确的结果。

特点:

  • 域名和 IP 查找
  • 输入检查和清理
  • HTML 或纯文本 (
    &txt=1
    ) 结果
  • 从该块分配到的区域 IP WHOIS 服务器正确返回全球 IP 查找结果
  • 如果适用,可以按照根 TLD WHOIS 服务器到注册商的 WHOIS 进行域名请求,以获得更准确的信息
  • 除了拥有 WHOIS 服务器的静态列表并回退到通用
    whois.nic.$tld
    范式之外,还可以配置为在 IANA 数据库中查找任何给定 TLD 的正确 WHOIS 服务器,但需要进行一次额外查询

-1
投票

尝试一下

github
gist

中提供的功能

https://gist.github.com/ManojKiranA/4b034659e85fa02308ad9bdcdd05629c

有关

TLDs/Whois servers
的完整列表,请参阅 http://www.iana.org/domains/root/db/http://www.whois365.com/en/listtld/

© www.soinside.com 2019 - 2024. All rights reserved.