Как я могу найти сервер WHOIS для любого TLD? [закрыто]

11

Я ищу надежный и актуальный список серверов WHOIS для использования в сценарии whois.
Поскольку список часто меняется, было бы неплохо, если бы был ресурс, на который я мог бы ссылаться, вместо того, чтобы часто обновлять скрипт.

Хамед Момени
источник
Почему бы просто не использовать GNU jwhois? Это обрабатывает это для вас.
Майкл Хэмптон
1
Это заслуживает повторного открытия, поскольку на самом деле существует только один официальный источник этой информации.
Zenexer

Ответы:

18

Существует несколько хорошо известных способов определения местоположения whois-серверов для TLD. База данных IANA, вероятно, наиболее близка к тому, о чем просит вопрос, однако существуют и другие источники, которые могут быть более полезны на практике.

Из IANA (доступ через whois и http)

Просмотрите http://www.iana.org/domains/root/db или найдите в базе данных whois whois.iana.orgTLD. Каждая запись имеет поле, указывающее сервер Whois .

Пример:

$ whois -h whois.iana.org com
[Querying whois.iana.org]
[whois.iana.org]
% IANA WHOIS server
% for more information on IANA, visit http://www.iana.org
% This query returned 1 object

domain:       COM

organisation: VeriSign Global Registry Services
address:      12061 Bluemont Way
address:      Reston Virginia 20190
address:      United States

contact:      administrative
name:         Registry Customer Service
organisation: VeriSign Global Registry Services
address:      12061 Bluemont Way
address:      Reston Virginia 20190
address:      United States
phone:        +1 703 925-6999
fax-no:       +1 703 948 3978
e-mail:       info@verisign-grs.com

contact:      technical
name:         Registry Customer Service
organisation: VeriSign Global Registry Services
address:      12061 Bluemont Way
address:      Reston Virginia 20190
address:      United States
phone:        +1 703 925-6999
fax-no:       +1 703 948 3978
e-mail:       info@verisign-grs.com

nserver:      A.GTLD-SERVERS.NET 192.5.6.30 2001:503:a83e:0:0:0:2:30
nserver:      B.GTLD-SERVERS.NET 192.33.14.30 2001:503:231d:0:0:0:2:30
nserver:      C.GTLD-SERVERS.NET 192.26.92.30
nserver:      D.GTLD-SERVERS.NET 192.31.80.30
nserver:      E.GTLD-SERVERS.NET 192.12.94.30
nserver:      F.GTLD-SERVERS.NET 192.35.51.30
nserver:      G.GTLD-SERVERS.NET 192.42.93.30
nserver:      H.GTLD-SERVERS.NET 192.54.112.30
nserver:      I.GTLD-SERVERS.NET 192.43.172.30
nserver:      J.GTLD-SERVERS.NET 192.48.79.30
nserver:      K.GTLD-SERVERS.NET 192.52.178.30
nserver:      L.GTLD-SERVERS.NET 192.41.162.30
nserver:      M.GTLD-SERVERS.NET 192.55.83.30
ds-rdata:     30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CFC41A5766

whois:        whois.verisign-grs.com

status:       ACTIVE
remarks:      Registration information: http://www.verisign-grs.com

created:      1985-01-01
changed:      2012-02-15
source:       IANA

$

С whois-servers.net (доступ через DNS)

Имя tld.whois-servers.netявляется CNAMEсоответствующим whois-сервером. Несколько непонятно, кто на самом деле поддерживает это, но это кажется довольно популярным, поскольку его очень легко использовать практически с любым клиентом whois (и некоторые клиенты по умолчанию используют этот сервис).

Пример:

$ dig com.whois-servers.net +noall +answer

; <<>> DiG 9.9.4-P2-RedHat-9.9.4-15.P2.fc20 <<>> com.whois-servers.net +noall +answer
;; global options: +cmd
com.whois-servers.net.  600     IN      CNAME   whois.verisign-grs.com.
whois.verisign-grs.com. 5       IN      A       199.7.55.74
$

Из самого реестра (доступ через DNS)

Многие реестры публикуют адрес своего whois-сервера в DNS непосредственно в соответствующей зоне в виде _nicname._tcp SRVзаписи .

Пример:

$ dig _nicname._tcp.us SRV +noall +answer

; <<>> DiG 9.9.4-P2-RedHat-9.9.4-15.P2.fc20 <<>> _nicname._tcp.us SRV +noall +answer
;; global options: +cmd
_nicname._tcp.us.       518344  IN      SRV     0 0 43 whois.nic.us.
$
Хокан Линдквист
источник
6

Я регулярно собираю список из IANA и PSL в XML-файл, включающий в себя whois-сервер, регистратор, домены второго уровня и, если возможно, регулярное выражение для доступности: https://github.com/whois-server-list/whois-server-list

Маркус Малуш
источник
5

В последнее время я играл с WHOIS и обнаружил, что некоторые из общедоступных пакетов whois (в частности, CentOS jwhois), похоже, полагаются на предварительно упакованные списки серверов TLD WHOIS. Хотя это будет хорошо для большинства ДВУ, это проблема для взрыва эзотерических рДВУ, таких как .horse.

Надежный метод на 100% состоит в том, чтобы найти домен верхнего уровня на сервере WHOIS IANA whois.iana.org, проанализировать whois:запись и затем запросить информацию о домене на этом сервере. Например:

foo@bar:~ $ echo -e "horse\r\n" | nc -i 1 whois.iana.org 43
% IANA WHOIS server
% for more information on IANA, visit http://www.iana.org
% This query returned 1 object

domain:       HORSE

[snip]

whois:        whois-dub.mm-registry.com

[snip]

Connection closed by foreign host.

А потом:

foo@bar:~ $ echo -e "dord.horse\r\n" | nc -i 1 whois-dub.mm-registry.com 43
Domain Name: dord.horse
Domain ID: 1742946-MMd1
WHOIS Server: whois-dub.mm-registry.com
[snip]

Если вы используете этот метод, вы должны быть вежливы и кэшировать ответы от сервера IANA не менее 48 часов, если не дольше, так как они будут редко меняться, а серверы IANA, как правило, находятся под большой нагрузкой.

Sammitch
источник
4

Я веду список серверов WHOIS для своей библиотеки Ruby WHOIS по адресу https://github.com/weppos/whois/blob/master/data/tld.json.

Содержит список всех существующих серверов.

Он не содержит ответа, когда домен доступен, потому что библиотека Ruby выполняет анализ на другом уровне. Кроме того, имейте в виду, что не все реестры используют строковые сообщения для сообщения о недоступности домена.

Симона Карлетти
источник
2

Вы можете использовать этот скрипт для получения серверов whois от IANA. созданный noys. вывод в список зон JSON и серверов whois.

<style>
body {
    font: normal 10px verdana, sans-serif;
    color: #333;
}
</style>

<?
$zones = array('ac','am','asia','at','be','biz','biz.ua','biz.ua','br.com','bz','cc','ch','co','co.am','co.in','co.ua','co.ua','om','com.am','com.kz','com.ua','cx','cz','de.com','eu','eu.com','firm.in','fm','gen.in','im','in','ind.in','info','io','kiev.ua','kz','la','lc','li','lt','lu','md','me','mn','mobi','ms','mx','name','net','net.am','net.in','org','org.am','org.in','org.kz','ph','pl','pp.ua','pro','pw','pw','ru','ru.com','so','su','su','su','tel','tv','tw','us','uy.com','vc','ws','xxx','za.cm','xn--p1ai');

$count = count($zones);

echo '<h1>Whois tool</h1>';

echo '<pre>
{
';

for($i=0;$i<$count;$i++) {
    $root_server = 'whois.iana.org';
    $zone = $zones[$i];
    $domain = 'nuceti75.'.$zones[$i];
    //echo "<h2>$domain - $current_domain</h2>";
    $fp = fsockopen($root_server, 43);
    if (!$fp) echo "Connection error: $root_server \r\n";
    else { 
        fputs($fp, $zone."\r\n");
        while (!feof($fp)) {
            $root_answer .= fgets($fp, 128);
        }
        preg_match("~whois:\s(.+)~i", $root_answer, $result);
        $current_server = trim($result[1]);
        fclose($fp);
    } 

    //echo "<pre>$root_answer</pre>";
    //echo "<b>Whois server for this TLD:</b> $current_server";

    $fh = fsockopen($current_server, 43);
    if (!$fh) echo "Connection error: $current_server ($zone) \r\n";
    else { 
        fputs($fh, $domain."\r\n");
        while (!feof($fh)) {
            $current_answer .= fgets($fh, 128);
        }
        fclose($fh);
    }

    //echo "<pre>$current_answer</pre>";

    echo "\"$zone\": \"$current_server\",\r\n";

    unset($root_answer);
    unset($current_answer);
    unset($result);

}

echo '
}
</pre>';

?>
Нойс
источник
1

Вам не нужен список этих. whois (1) достаточно умен, чтобы понять это для вас:

Для справочной страницы:

         By default whois constructs the name of a whois server to use
         from the top-level domain (TLD) of the supplied (single) argu-
         ment, and appending ".whois-servers.net".  This effectively
         allows a suitable whois server to be selected automatically for a
         large number of TLDs.

Whois, как правило, довольно надежный. Я никогда не вспоминаю, как это провалилось для домена.

devicenull
источник
Количество новых TLD не установлено; например bet.whois-servers.netне существует.
cmbuckley
Эта функция зависит от того, какой whoisклиент вы используете. Не все из них делают это по хорошей или плохой причине. whois-servers.netдо сих пор не является официальным сервисом, просто что-то сделано на случай наилучших усилий.
Патрик Мевзек