用PHP查询域名状态whois的类

时间:2021-05-18

复制代码 代码如下:
<?
classSearchDomain
{
var$domain="";
functionSetDomain($udomain)
{
$this->domain=$udomain;
}
//
//获取whois并分析域名状态
//ok未被注册
//非空值过期时间
//空值未知
//
functionGetInfo()
{

$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("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."\r\n";
$out.="Connection:Close\r\n\r\n";
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."未注册!<br/>\r\n";
elseif($rs=="")echo"无法查询".$this->domain."状态!<br/>\r\n";
elseecho$this->domain."已注册,到期时间:$rs<br/>\r\n";
}
//
//获得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."未注册!<br/>\r\n";
elseif($rs=="")echo"无法查询".$sd->domain."状态!<br/>\r\n";
elseecho$sd->domain."已注册,到期时间:$rs<br/>\r\n";

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章