复制代码 代码如下:
class searchdomain
{
var $domain=;
function setdomain($udomain)
{
$this->domain = $udomain;
}
//
// 获取whois并分析域名状态
// ok 未被注册
// 非空值 过期时间
// 空值 未知
//
function getinfo()
{
/*
$dinfo = trim($this->getwhois());
if($dinfo==) return ;
if(eregi(no match,$dinfo)) return ok;
//return $rs;
*/
$wl = ;
$w_server = $this->getserver();
if($w_server==) return ;
$fp = fsockopen($w_server, 43, $errno, $errstr, 30);
if(!$fp)
{
echo $errstr;
return ;
}
$out = $this->domain.\r\n;
$out .= connection: close\r\n\r\n;
fputs($fp, $out);
while (!feof($fp))
{
$wl = fgets($fp, 255);
if(eregi(no match,$wl))
{
fclose($fp);
return ok;
}
if(eregi(expiration date,$wl))
{
$lines = split(:,$wl);
$t = trim($lines[1]);
$ts = split( ,$t);
$t = $ts[0];
if(ereg([^0-9-],$t))
{
$ts = split(-,$t);
$t = $ts[2].-.$this->monthtonum($ts[1]).-.$ts[0];
}
fclose($fp);
return $t;
}
}
fclose($fp);
return ;
}
//
//获得域名的整个whois信息
//
function getwhois()
{
$wh = ;
$w_server = $this->getserver();
if($w_server==) return ;
$fp = fsockopen($w_server, 43, $errno, $errstr, 30);
if(!$fp)
{
echo $errstr;
return ;
}
$out = $this->domain.\r\n;
$out .= connection: close\r\n\r\n;
fputs($fp, $out);
while (!feof($fp))
{
$wh .= nl2br(fgets($fp, 255));
}
fclose($fp);
return $wh;
}
//
//输出当前域名的状态信息
//
function printsta()
{
$rs = $this->getinfo();
if($rs==ok) echo $this->domain. 未注册!
\r\n;
else if($rs==) echo 无法查询 .$this->domain. 状态!
\r\n;
else echo $this->domain. 已注册,到期时间:$rs
\r\n;
}
//
//获得 whois 查询服务器
//
function getserver()
{
$udomain=substr($this->domain,-3);
switch($udomain)
{
case com:
$w_server=whois.internic.net;
break;
case net:
$w_server=whois.internic.net;
break;
case org:
$w_server=whois.pir.org;
break;
case nfo:
$w_server=whois.afilias.info;
break;
case biz:
$w_server=whois.biz;
break;
case .cc:
$w_server=whois.nic.cc;
break;
case edu:
$w_server=whois.educause.net;
break;
case gov:
$w_server=whois.nic.gov;
break;
case .cn:
$w_server=whois.cnnic.net.cn;
break;
default:
$w_server=;
}
return $w_server;
}
//
//英语的月份转为数字
//
function monthtonum($m)
{
$m = strtolower($m);
for($i=1;$i {
$tt = mktime(0,0,0,$i+1,0,2005);
if($m==strtolower(strftime(%b,$tt)))
{
if($i>9) return $i-1;
else return 0.$i-1;
}
}
}
}
$sd = new searchdomain();
$sd->setdomain(job-sky.com);
//查询域名是否被注册,等价于 $sd->printsta();
$rs = $sd->getinfo();
if($rs==ok) echo $sd->domain. 未注册!
\r\n;
else if($rs==) echo 无法查询 .$sd->domain. 状态!
\r\n;
else echo $sd->domain. 已注册,到期时间:$rs
\r\n;
//获得域名的详细whois信息
//echo $sd->getwhois();
?>
以上就介绍了wrath of the titans 用php查询域名状态whois的类,包括了wrath of the titans方面的内容,希望对php教程有兴趣的朋友有所帮助。
