Come posso trovare il server WHOIS per qualsiasi TLD? [chiuso]


11

Sto cercando un elenco affidabile e aggiornato dei server WHOIS da utilizzare in uno script whois.
Poiché l'elenco cambia frequentemente, sarebbe bello se ci fosse una risorsa a cui potrei fare riferimento piuttosto che dover aggiornare frequentemente lo script.


Perché non usare solo GNU jwhois? Gestisce questo per te.
Michael Hampton,

1
Questo merita di essere riaperto, in quanto esiste davvero una sola fonte ufficiale per queste informazioni.
Zenexer,

Risposte:


18

Esistono diversi modi ben noti per individuare i server whois per i TLD, il database IANA è probabilmente il più vicino a ciò che la domanda richiede, tuttavia ci sono altre fonti che potrebbero essere più utili nella pratica.

Da IANA (accesso via whois e http)

Sfoglia http://www.iana.org/domains/root/db o cerca nel database whois whois.iana.orgper il TLD. Ogni voce ha un campo che specifica il server whois .

Esempio:

$ 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

$

Da whois-servers.net (accesso tramite DNS)

Il nome tld.whois-servers.netè a CNAMEper il whois-server appropriato. Un po 'poco chiaro chi lo mantiene effettivamente, ma sembra piuttosto popolare in quanto è molto facile da usare praticamente con qualsiasi client whois (e alcuni client non usano questo servizio).

Esempio:

$ 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
$

Dal registro stesso (accesso tramite DNS)

Molti registri pubblicano l'indirizzo del proprio server whois in DNS direttamente nella relativa zona come _nicname._tcp SRVrecord .

Esempio:

$ 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.
$


5

Di recente ho giocato con WHOIS e ho scoperto che alcuni dei pacchetti whois disponibili pubblicamente [ovvero i jwhois di CentOS] sembrano basarsi su elenchi preconfezionati di server WHDIS TLD. Mentre questo andrà bene per la maggior parte dei TLD, è un problema per l'esplosione di gTLD esoterici come .horse.

Il metodo affidabile al 100% è cercare il TLD sul server WHOIS di IANA whois.iana.org, analizzare la whois:voce e quindi interrogare quel server per le informazioni del dominio. Per esempio:

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.

E poi:

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]

Se stai usando questo metodo, dovresti essere educato e rispondere in cache dal server IANA per almeno 48 ore, se non più a lungo, poiché raramente cambieranno e i server IANA tendono ad essere sotto carico enorme.


4

Mantengo l'elenco dei server WHOIS per la mia libreria WHOIS di Ruby all'indirizzo https://github.com/weppos/whois/blob/master/data/tld.json

Contiene l'elenco di tutti i server esistenti.

Non contiene la risposta quando il dominio è disponibile perché la libreria Ruby esegue l'analisi a un livello diverso. Inoltre, tieni presente che non tutti i registri utilizzano i messaggi di stringa per comunicare l'indisponibilità di un dominio.


2

puoi usare questo script per ottenere i server whois da IANA. tradito da rumori. output nell'elenco JSON di zone e server 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

Non dovresti aver bisogno di un elenco di questi. whois (1) è abbastanza intelligente da capire questo per te:

Per la pagina man:

         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 è generalmente abbastanza affidabile. Non ricordo mai di averlo visto fallire per un dominio.


Alcuni nuovi TLD non sono impostati; ad es. bet.whois-servers.netnon esiste.
cmbuckley,

Questa funzione dipende dal whoisclient utilizzato. Non tutti lo fanno, per ragioni buone o cattive. whois-servers.netnon è ancora un servizio ufficiale, solo qualcosa fatto sul caso migliore.
Patrick Mevzek,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.