domain = $udomain ; } // // Get whois and analyze domain name status // ok not registered // non-null value expiration time // unknown null value // function"/> domain = $udomain ; } // // Get whois and analyze domain name status // ok not registered // non-null value expiration time // unknown null value // function">
Home > Article > Backend Development > wrath of the titans Use PHP to query domain name status whois class
Copy the code The code is as follows:
class SearchDomain
{
var $domain="";
function SetDomain($udomain)
{
$this->domain = $udomain;
}
//
// Get whois and analyze Domain name status
// ok Not registered
// Non-null value Expiration time
// Null value Unknown
//
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."rn";
$out .= "Connection: Closernrn";
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 "";
}
//
//Get the entire whois information of the domain name
//
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."rn";
$out .= " Connection: Closernrn";
fputs($fp, $out);
while (!feof($fp))
{
$wh .= nl2br(fgets($fp, 255));
}
fclose($fp );
return $wh;
}
//
//Output the status information of the current domain name
//
function PrintSta()
{
$rs = $this->GetInfo();
if($rs= ="ok") echo $this->domain." Not registered!
rn";
else if($rs=="") echo "Unable to query ".$this->domain." status!
rn";
else echo $this->domain." Registered, expiry time: $rs
rn";
}
//
//Get whois query server
//
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;
}
//
// Convert English months to numbers
//
function MonthToNum($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;
else return "0".$i-1;
}
}
}
}
$sd = new SearchDomain();
$sd->SetDomain("job-sky.com" );
//Check whether the domain name is registered, equivalent to $sd->PrintSta();
$rs = $sd->GetInfo();
if($rs=="ok") echo $sd ->domain." Not registered!
rn";
else if($rs=="") echo "Unable to query ".$sd->domain." status!
rn";
else echo $sd->domain." Registered, expiration time: $rs
rn";
//Get detailed whois information of the domain name
//echo $sd->GetWhois();
?>
The above introduces the class of wrath of the titans for querying domain name status whois using PHP, including the content of wrath of the titans. I hope it will be helpful to friends who are interested in PHP tutorials.