提醒:本页面将不再更新、维护或者支持,文章、评论所叙述内容存在时效性,涉及技术细节或者软件使用方面不保证能够完全有效可操作,请谨慎参考!

基本上每一个域名都有一个对应的WHOIS服务器,由WHOIS服务器来提供该域名的一些必须信息,有时候我们需要获取这些信息,这时就要查询这些服务器。

至于得到WHOIS服务器地址后下一步该怎么做,其实就是通过Socket编程连接远程服务器43端口来获取信息。在PHP中还可以利用PEAR简化写法:

<?php
require_once "Net/Whois.php";

$server = "whois.denic.de";
$query  = "phpcrawler.de";     // get information about
                               // this domain
$whois = new Net_Whois;
$data = $whois->query($query, $server);
echo $data;
?>

主要来自于 iana.org ,为了便于查阅,先以PHP数组的形式记录在这儿:

<?php
$servers = array(    
  'ac' => 'whois.nic.ac',
  'ae' => 'whois.nic.ae',
  'af' => 'whois.nic.af',
  'ag' => 'whois.nic.ag',
  'al' => 'whois.ripe.net',
  'am' => 'whois.amnic.net',
  'as' => 'whois.nic.as',
  'at' => 'whois.nic.at',
  'au' => 'whois.aunic.net',
  'az' => 'whois.ripe.net',
  'arin' => 'whois.arin.net',
  'asia' => 'whois.nic.asia',
  'apnic' => 'whois.apnic.net',
  'afrinic' => 'whois.afrinic.net',
  'ba' => 'whois.ripe.net',
  'be' => 'whois.dns.be',
  'bg' => 'whois.register.bg',
  'bi' => 'whois.nic.bi',
  'biz' => 'whois.neulevel.biz',
  'bj' => 'www.nic.bj',
  'br' => 'whois.nic.br',
  'bt' => 'whois.netnames.net',
  'by' => 'whois.ripe.net',
  'bz' => 'whois.belizenic.bz',
  'ca' => 'whois.cira.ca',
  'cc' => 'whois.nic.cc',
  'cd' => 'whois.nic.cd',
  'ch' => 'whois.nic.ch',
  'ck' => 'whois.nic.ck',
  'cl' => 'nic.cl',
  'cn' => 'whois.cnnic.net.cn',
  'net.cn' => 'whois.cnnic.net.cn',   
  'com.cn' => 'whois.cnnic.net.cn',
  'gov.cn' => 'whois.cnnic.net.cn',
  'edu.cn' => 'whois.edu.cn',
  'co.nl' => 'whois.co.nl',
  'com' => 'whois.verisign-grs.com',
  //'com' => 'com.whois-servers.net',
  //'com' => 'whois.crsnic.net',
  'coop' => 'whois.nic.coop',
  'cx' => 'whois.nic.cx',
  'cy' => 'whois.ripe.net',
  'cz' => 'whois.nic.cz',
  'de' => 'whois.denic.de',
  'dk' => 'whois.dk-hostmaster.dk',
  'dm' => 'whois.nic.cx',
  'dz' => 'whois.ripe.net',
  'edu' => 'whois.educause.net',
  'ee' => 'whois.eenet.ee',
  'eg' => 'whois.ripe.net',
  'es' => 'whois.ripe.net',
  'eu' => 'whois.eu',
  'fi' => 'whois.ficora.fi',
  'fo' => 'whois.ripe.net',
  'fr' => 'whois.nic.fr',
  'gb' => 'whois.ripe.net',
  'ge' => 'whois.ripe.net',
  'gl' => 'whois.ripe.net',
  'gm' => 'whois.ripe.net',
  'gov' => 'whois.nic.gov',
  'gr' => 'whois.ripe.net',
  'gs' => 'whois.adamsnames.tc',
  'hk' => 'whois.hknic.net.hk',
  'hm' => 'whois.registry.hm',
  'hn' => 'whois2.afilias-grs.net',
  'hr' => 'whois.ripe.net',
  'hu' => 'whois.ripe.net',
  'ie' => 'whois.domainregistry.ie',
  'il' => 'whois.isoc.org.il',
  'in' => 'whois.inregistry.net',
  'info' => 'whois.afilias.info',
  'int' => 'whois.isi.edu',
  'iq' => 'vrx.net',
  'ir' => 'whois.nic.ir',
  'is' => 'whois.isnic.is',
  'it' => 'whois.nic.it',
  'je' => 'whois.je',
  'jobs' => 'jobswhois.verisign-grs.com',
  'jp' => 'whois.jprs.jp',
  'kg' => 'whois.domain.kg',
  'kr' => 'whois.nic.or.kr',
  'la' => 'whois2.afilias-grs.net',
  'li' => 'whois.nic.li',
  'lt' => 'whois.domreg.lt',
  'lu' => 'whois.restena.lu',
  'lv' => 'whois.nic.lv',
  'ly' => 'whois.lydomains.com',
  'lacnic' => 'whois.lacnic.net',
  'ma' => 'whois.iam.net.ma',
  'mc' => 'whois.ripe.net',
  'md' => 'whois.nic.md',
  'me' => 'whois.nic.me',
  'mil' => 'whois.nic.mil',
  'mk' => 'whois.ripe.net',
  'mobi' => 'whois.dotmobiregistry.net',
  'ms' => 'whois.nic.ms',
  'mt' => 'whois.ripe.net',
  'mu' => 'whois.nic.mu',
  'mx' => 'whois.nic.mx',
  'my' => 'whois.mynic.net.my',
  'museum' => 'whois.museum',
  'name' => 'whois.nic.name',
  'net' => 'whois.verisign-grs.com',
  'nf' => 'whois.nic.cx',
  'nl' => 'whois.domain-registry.nl',
  'no' => 'whois.norid.no',
  'nu' => 'whois.nic.nu',
  'nz' => 'whois.srs.net.nz',
  'org' => 'whois.pir.org',
  'pl' => 'whois.dns.pl',
  'pr' => 'whois.nic.pr',
  'pro' => 'whois.registrypro.pro',
  'pt' => 'whois.dns.pt',
  'ro' => 'whois.rotld.ro',
  'ru' => 'whois.ripn.ru',
  'ripe' => 'whois.ripe.net',
  'sa' => 'saudinic.net.sa',
  'sb' => 'whois.nic.net.sb',
  'sc' => 'whois2.afilias-grs.net',
  'se' => 'whois.nic-se.se',
  'sg' => 'whois.nic.net.sg',
  'sh' => 'whois.nic.sh',
  'si' => 'whois.arnes.si',
  'sk' => 'whois.sk-nic.sk',
  'sm' => 'whois.ripe.net',
  'st' => 'whois.nic.st',
  'su' => 'whois.ripn.net',
  'tc' => 'whois.adamsnames.tc',
  'tel' => 'whois.nic.tel',
  'tf' => 'whois.nic.tf',
  'th' => 'whois.thnic.net',
  'tj' => 'whois.nic.tj',
  'tk' => 'whois.nic.tk',
  'tl' => 'whois.domains.tl',
  'tm' => 'whois.nic.tm',
  'tn' => 'whois.ripe.net',
  'to' => 'whois.tonic.to',
  'tp' => 'whois.domains.tl',
  'tr' => 'whois.nic.tr',
  'travel' => 'whois.nic.travel',
  'tw' => 'whois.apnic.net',
  'tv' => 'whois.nic.tv',
  'ua' => 'whois.ripe.net',
  'uk' => 'whois.nic.uk',
  'gov.uk' => 'whois.ja.net',
  'us' => 'whois.nic.us',
  'uy' => 'nic.uy',
  'uz' => 'whois.cctld.uz',
  'va' => 'whois.ripe.net',
  'vc' => 'whois2.afilias-grs.net',
  've' => 'whois.nic.ve',
  'vg' => 'whois.adamsnames.tc',
  'ws' => 'www.nic.ws',
  'yu' => 'whois.ripe.net',
  'net.au' => 'whois.aunic.net',    
  'ae.com' => 'whois.centralnic.net',
  'br.com' => 'whois.centralnic.net',
  'cn.com' => 'whois.centralnic.net',
  'de.com' => 'whois.centralnic.net',
  'eu.com' => 'whois.centralnic.net',
  'hu.com' => 'whois.centralnic.net',    
  'jpn.com'=> 'whois.centralnic.net',
  'kr.com' => 'whois.centralnic.net',
  'gb.com' => 'whois.centralnic.net',
  'no.com' => 'whois.centralnic.net',
  'qc.com' => 'whois.centralnic.net',
  'ru.com' => 'whois.centralnic.net',
  'sa.com' => 'whois.centralnic.net',
  'se.com' => 'whois.centralnic.net',    
  'za.com' => 'whois.centralnic.net',
  'uk.com' => 'whois.centralnic.net',    
  'us.com' => 'whois.centralnic.net',
  'uy.com' => 'whois.centralnic.net',    
  'gb.net' => 'whois.centralnic.net',
  'se.net' => 'whois.centralnic.net',
  'uk.net' => 'whois.centralnic.net',    
  'za.net' => 'whois.za.net',
  'za.org' => 'whois.za.net'
);

对于查询来说,只要传入顶级域,那么就可以返回其WHOIS服务器,对于类似于apple.com.cn这样的地区顶级域(ccTLD),应当先查询com.cn,如果找不到WHOIS Server,再搜索cn,直到找到有效服务器或者返回错误

不想用PEAR?要获得更强大的查询能力?可以看看功能强大的 phpWhois