欢迎来到福编程网,本站提供各种互联网专业知识!

用PHP查询域名状态whois的类

发布时间:2006-11-25 作者: 来源:转载
复制代码代码如下:
复制代码 代码如下:
classSearchDomain
{
var$domain="";
functionSetDomain($udomain)
{
$this->domain=$udomain;
}
//
//获取whois并分析域名状态
//ok未被注册
//非空值过期时间
//空值未知
//
functionGetInfo()
{
/*
$dinfo=trim($this->GetWhois());
if($dinfo=="")return"";
if(eregi("nomatch",$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."rn";
$out.="Connection:Closernrn";
fputs($fp,$out);
while(!feof($fp))
{
$wl=fgets($fp,255);
if(eregi("nomatch",$wl))
{
fclose($fp);
return"ok";
}
if(eregi("ExpirationDate",$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信息
//
functionGetWhois()
{
$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."rn";
$out.="Connection:Closernrn";
fputs($fp,$out);
while(!feof($fp))
{
$wh.=nl2br(fgets($fp,255));
}
fclose($fp);
return$wh;
}
//
//输出当前域名的状态信息
//
functionPrintSta()
{
$rs=$this->GetInfo();
if($rs=="ok")echo$this->domain."未注册!

rn";
elseif($rs=="")echo"无法查询".$this->domain."状态!

rn";
elseecho$this->domain."已注册,到期时间:$rs

rn";
}
//
//获得whois查询服务器
//
functionGetServer()
{
$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;
}
//
//英语的月份转为数字
//
functionMonthToNum($m)
{
$m=strtolower($m);
for($i=1;$i<=12;$i++)
{
$tt=mktime(0,0,0,$i+1,0,2005);
if($m==strtolower(strftime("%b",$tt)))
{
if($i>9)return$i-1;
elsereturn"0".$i-1;
}
}
}
}

$sd=newSearchDomain();
$sd->SetDomain("job-sky.com");

//查询域名是否被注册,等价于$sd->PrintSta();
$rs=$sd->GetInfo();
if($rs=="ok")echo$sd->domain."未注册!

rn";
elseif($rs=="")echo"无法查询".$sd->domain."状态!

rn";
elseecho$sd->domain."已注册,到期时间:$rs

rn";

//获得域名的详细whois信息
//echo$sd->GetWhois();
?>

相关推荐