PHP whois查询类定义与用法示例
本文实例讲述了PHPwhois查询类定义与用法。分享给大家供大家参考,具体如下:
whois.class.php
array("whois.verisign-grs.com","whois.crsnic.net"),
"net"=>array("whois.verisign-grs.com","whois.crsnic.net"),
"org"=>array("whois.pir.org","whois.publicinterestregistry.net"),
"info"=>array("whois.afilias.info","whois.afilias.net"),
"biz"=>array("whois.neulevel.biz"),
"us"=>array("whois.nic.us"),
"uk"=>array("whois.nic.uk"),
"ca"=>array("whois.cira.ca"),
"tel"=>array("whois.nic.tel"),
"ie"=>array("whois.iedr.ie","whois.domainregistry.ie"),
"it"=>array("whois.nic.it"),
"li"=>array("whois.nic.li"),
"no"=>array("whois.norid.no"),
"cc"=>array("whois.nic.cc"),
"eu"=>array("whois.eu"),
"nu"=>array("whois.nic.nu"),
"au"=>array("whois.aunic.net","whois.ausregistry.net.au"),
"de"=>array("whois.denic.de"),
"ws"=>array("whois.worldsite.ws","whois.nic.ws","www.nic.ws"),
"sc"=>array("whois2.afilias-grs.net"),
"mobi"=>array("whois.dotmobiregistry.net"),
"pro"=>array("whois.registrypro.pro","whois.registry.pro"),
"edu"=>array("whois.educause.net","whois.crsnic.net"),
"tv"=>array("whois.nic.tv","tvwhois.verisign-grs.com"),
"travel"=>array("whois.nic.travel"),
"name"=>array("whois.nic.name"),
"in"=>array("whois.inregistry.net","whois.registry.in"),
"me"=>array("whois.nic.me","whois.meregistry.net"),
"at"=>array("whois.nic.at"),
"be"=>array("whois.dns.be"),
"cn"=>array("whois.cnnic.cn","whois.cnnic.net.cn"),
"asia"=>array("whois.nic.asia"),
"ru"=>array("whois.ripn.ru","whois.ripn.net"),
"ro"=>array("whois.rotld.ro"),
"aero"=>array("whois.aero"),
"fr"=>array("whois.nic.fr"),
"se"=>array("whois.iis.se","whois.nic-se.se","whois.nic.se"),
"nl"=>array("whois.sidn.nl","whois.domain-registry.nl"),
"nz"=>array("whois.srs.net.nz","whois.domainz.net.nz"),
"mx"=>array("whois.nic.mx"),
"tw"=>array("whois.apnic.net","whois.twnic.net.tw"),
"ch"=>array("whois.nic.ch"),
"hk"=>array("whois.hknic.net.hk"),
"ac"=>array("whois.nic.ac"),
"ae"=>array("whois.nic.ae"),
"af"=>array("whois.nic.af"),
"ag"=>array("whois.nic.ag"),
"al"=>array("whois.ripe.net"),
"am"=>array("whois.amnic.net"),
"as"=>array("whois.nic.as"),
"az"=>array("whois.ripe.net"),
"ba"=>array("whois.ripe.net"),
"bg"=>array("whois.register.bg"),
"bi"=>array("whois.nic.bi"),
"bj"=>array("www.nic.bj"),
"br"=>array("whois.nic.br"),
"bt"=>array("whois.netnames.net"),
"by"=>array("whois.ripe.net"),
"bz"=>array("whois.belizenic.bz"),
"cd"=>array("whois.nic.cd"),
"ck"=>array("whois.nic.ck"),
"cl"=>array("nic.cl"),
"coop"=>array("whois.nic.coop"),
"cx"=>array("whois.nic.cx"),
"cy"=>array("whois.ripe.net"),
"cz"=>array("whois.nic.cz"),
"dk"=>array("whois.dk-hostmaster.dk"),
"dm"=>array("whois.nic.cx"),
"dz"=>array("whois.ripe.net"),
"ee"=>array("whois.eenet.ee"),
"eg"=>array("whois.ripe.net"),
"es"=>array("whois.ripe.net"),
"fi"=>array("whois.ficora.fi"),
"fo"=>array("whois.ripe.net"),
"gb"=>array("whois.ripe.net"),
"ge"=>array("whois.ripe.net"),
"gl"=>array("whois.ripe.net"),
"gm"=>array("whois.ripe.net"),
"gov"=>array("whois.nic.gov"),
"gr"=>array("whois.ripe.net"),
"gs"=>array("whois.adamsnames.tc"),
"hm"=>array("whois.registry.hm"),
"hn"=>array("whois2.afilias-grs.net"),
"hr"=>array("whois.ripe.net"),
"hu"=>array("whois.ripe.net"),
"il"=>array("whois.isoc.org.il"),
"int"=>array("whois.isi.edu"),
"iq"=>array("vrx.net"),
"ir"=>array("whois.nic.ir"),
"is"=>array("whois.isnic.is"),
"je"=>array("whois.je"),
"jp"=>array("whois.jprs.jp"),
"kg"=>array("whois.domain.kg"),
"kr"=>array("whois.nic.or.kr"),
"la"=>array("whois2.afilias-grs.net"),
"lt"=>array("whois.domreg.lt"),
"lu"=>array("whois.restena.lu"),
"lv"=>array("whois.nic.lv"),
"ly"=>array("whois.lydomains.com"),
"ma"=>array("whois.iam.net.ma"),
"mc"=>array("whois.ripe.net"),
"md"=>array("whois.nic.md"),
"mil"=>array("whois.nic.mil"),
"mk"=>array("whois.ripe.net"),
"ms"=>array("whois.nic.ms"),
"mt"=>array("whois.ripe.net"),
"mu"=>array("whois.nic.mu"),
"my"=>array("whois.mynic.net.my"),
"nf"=>array("whois.nic.cx"),
"pl"=>array("whois.dns.pl"),
"pr"=>array("whois.nic.pr"),
"pt"=>array("whois.dns.pt"),
"sa"=>array("saudinic.net.sa"),
"sb"=>array("whois.nic.net.sb"),
"sg"=>array("whois.nic.net.sg"),
"sh"=>array("whois.nic.sh"),
"si"=>array("whois.arnes.si"),
"sk"=>array("whois.sk-nic.sk"),
"sm"=>array("whois.ripe.net"),
"st"=>array("whois.nic.st"),
"su"=>array("whois.ripn.net"),
"tc"=>array("whois.adamsnames.tc"),
"tf"=>array("whois.nic.tf"),
"th"=>array("whois.thnic.net"),
"tj"=>array("whois.nic.tj"),
"tk"=>array("whois.nic.tk"),
"tl"=>array("whois.domains.tl"),
"tm"=>array("whois.nic.tm"),
"tn"=>array("whois.ripe.net"),
"to"=>array("whois.tonic.to"),
"tp"=>array("whois.domains.tl"),
"tr"=>array("whois.nic.tr"),
"ua"=>array("whois.ripe.net"),
"uy"=>array("nic.uy"),
"uz"=>array("whois.cctld.uz"),
"va"=>array("whois.ripe.net"),
"vc"=>array("whois2.afilias-grs.net"),
"ve"=>array("whois.nic.ve"),
"vg"=>array("whois.adamsnames.tc"),
"yu"=>array("whois.ripe.net")
);
publicfunctionwhoislookup($domain)
{
$domain=trim($domain);//removespacefromstartandendofdomain
if(substr(strtolower($domain),0,7)=="http://")$domain=substr($domain,7);//removehttp://ifincluded
if(substr(strtolower($domain),0,4)=="www.")$domain=substr($domain,4);//removewwwfromdomain
if(preg_match("/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/",$domain))
return$this->queryWhois("whois.lacnic.net",$domain);
elseif(preg_match("/^([-a-z0-9]{2,100})\.([a-z\.]{2,8})$/i",$domain))
{
$domain_parts=explode(".",$domain);
$tld=strtolower(array_pop($domain_parts));
$server=$this->WHOIS_SERVERS[$tld][0];
if(!$server){
return"Error:NoappropriateWhoisserverfoundfor$domaindomain!";
}
$res=$this->queryWhois($server,$domain);
while(preg_match_all("/WhoisServer:(.*)/",$res,$matches))
{
$server=array_pop($matches[1]);
$res=$this->queryWhois($server,$domain);
}
return$res;
}
else
return"InvalidInput";
}
privatefunctionqueryWhois($server,$domain)
{
$fp=@fsockopen($server,43,$errno,$errstr,20)ordie("SocketError".$errno."-".$errstr);
if($server=="whois.verisign-grs.com")
$domain="=".$domain;
fputs($fp,$domain."\r\n");
$out="";
while(!feof($fp)){
$out.=fgets($fp);
}
fclose($fp);
return$out;
}
}
?>
调用的方式
whoislookup("www.nhooo.com");
?>
运行结果:
DomainName:JB51.NETRegistryDomainID:527217184_DOMAIN_NET-VRSNRegistrarWHOISServer:whois.godaddy.comRegistrarURL:http://www.godaddy.comUpdatedDate:2016-05-26T08:17:44ZCreationDate:2006-07-22T03:11:39ZRegistryExpiryDate:2024-07-22T03:11:39ZRegistrar:GoDaddy.com,LLCRegistrarIANAID:146RegistrarAbuseContactEmail:abuse@godaddy.comRegistrarAbuseContactPhone:480-624-2505DomainStatus:clientDeleteProhibitedhttps://icann.org/epp#clientDeleteProhibitedDomainStatus:clientRenewProhibitedhttps://icann.org/epp#clientRenewProhibitedDomainStatus:clientTransferProhibitedhttps://icann.org/epp#clientTransferProhibitedDomainStatus:clientUpdateProhibitedhttps://icann.org/epp#clientUpdateProhibitedNameServer:NS1.DNSV2.COMNameServer:NS2.DNSV2.COMDNSSEC:unsignedURLoftheICANNWhoisInaccuracyComplaintForm:https://www.icann.org/wicf/>>>Lastupdateofwhoisdatabase:2019-04-03T03:32:17Z<<
更多关于PHP相关内容感兴趣的读者可查看本站专题:《phpsocket用法总结》、《php字符串(string)用法总结》、《PHP数学运算技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《PHP网络编程技巧总结》
希望本文所述对大家PHP程序设计有所帮助。
