Comment puis-je trouver le serveur WHOIS pour n'importe quel TLD? [fermé]

11

Je recherche une liste fiable et à jour de serveurs WHOIS à utiliser dans un script whois.
Étant donné que la liste change fréquemment, ce serait bien s'il y avait une ressource à laquelle je pouvais me référer plutôt que d'avoir à mettre à jour le script fréquemment.

Hamed Momeni
la source
Pourquoi ne pas simplement utiliser GNU jwhois? Il gère cela pour vous.
Michael Hampton
1
Cela mérite d'être rouvert, car il n'y a vraiment qu'une seule source officielle pour ces informations.
Zenexer

Réponses:

18

Il existe plusieurs façons bien connues de localiser les serveurs whois pour les TLD, la base de données IANA est probablement la plus proche de ce que la question demande, mais il existe d'autres sources qui peuvent être plus utiles dans la pratique.

Depuis l'IANA (accès via whois et http)

Parcourez http://www.iana.org/domains/root/db ou recherchez la base de données whois sur whois.iana.orgpour le TLD. Chaque entrée a un champ spécifiant le serveur whois .

Exemple:

$ 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:       [email protected]

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:       [email protected]

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

$

Depuis whois-servers.net (accès via DNS)

Le nom tld.whois-servers.netest un CNAMEvers le serveur whois approprié. Un peu incertain qui gère réellement cela, mais cela semble assez populaire car il est très facile de l'utiliser avec à peu près n'importe quel client whois (et certains clients utilisent par défaut ce service).

Exemple:

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

Depuis le registre lui-même (accès via DNS)

De nombreux registres publient l'adresse de leur serveur whois dans DNS directement dans la zone concernée en tant _nicname._tcp SRVqu'enregistrement .

Exemple:

$ 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.
$
Håkan Lindqvist
la source
6

Je compile régulièrement une liste de l' IANA et du PSL dans un fichier XML comprenant le serveur whois, le registraire, les domaines de deuxième niveau et si possible une expression régulière pour la disponibilité: https://github.com/whois-server-list/whois-server-list

Markus Malkusch
la source
5

J'ai joué avec WHOIS ces derniers temps et j'ai constaté que certains des packages whois disponibles publiquement [à savoir jwhois de CentOS] semblent s'appuyer sur des listes pré-packagées de serveurs WHOIS TLD. Bien que cela va être bien pour la majorité des TLD, c'est un problème pour l'explosion de gTLD ésotériques comme .horse.

La méthode 100% fiable consiste à rechercher le TLD sur le serveur WHOIS de l'IANA whois.iana.org, à analyser l' whois:entrée, puis à interroger ce serveur pour les informations du domaine. Par exemple:

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.

Et alors:

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]

Si vous utilisez cette méthode, vous devez être poli et mettre en cache les réponses du serveur IANA pendant au moins 48 heures, sinon plus, car elles changeront rarement et les serveurs IANA ont tendance à être soumis à une charge massive.

Sammitch
la source
4

Je gère la liste des serveurs WHOIS pour ma bibliothèque WHOIS Ruby à https://github.com/weppos/whois/blob/master/data/tld.json

Il contient la liste de tous les serveurs existants.

Il ne contient pas la réponse lorsque le domaine est disponible car la bibliothèque Ruby effectue une analyse à un niveau différent. En outre, gardez à l'esprit que tous les registres n'utilisent pas de messages de chaîne pour communiquer l'indisponibilité d'un domaine.

Simone Carletti
la source
2

vous pouvez utiliser ce script pour obtenir des serveurs whois de l'IANA. chreated par noys. sortie dans la liste JSON des zones et des serveurs 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>';

?>
noys
la source
1

Vous ne devriez pas avoir besoin d'une liste de ceux-ci. whois (1) est assez intelligent pour comprendre cela:

Pour la page de manuel:

         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 est généralement assez fiable. Je ne me souviens jamais l'avoir vu échouer pour un domaine.

devicenull
la source
Un certain nombre de nouveaux TLD ne sont pas configurés; par exemple bet.whois-servers.netn'existe pas.
cmbuckley
Cette fonctionnalité dépend du whoisclient que vous utilisez. Tous ne le font pas, pour une bonne ou une mauvaise raison. whois-servers.netn'est toujours pas un service officiel, juste quelque chose fait sur un cas de meilleur effort.
Patrick Mevzek