Home > Backend Development > PHP Tutorial > Modified version of WHOIS class_PHP tutorial

Modified version of WHOIS class_PHP tutorial

WBOY
Release: 2016-07-21 16:02:43
Original
907 people have browsed it

1. Simplified the code. (Actually, the definitions of some unnecessary variables have been removed)
2. As the information retrieved from INTERNIC is too simple, further query is conducted based on the WHOIS SERVER in the information fed back by INTERNIC. For example, YAHOO has more detailed information at whois.networksolutions.com.

class whois {

var $use_cache = 1;
var $FROM_CACHE=0;
var $cache_dir = "./"; // Set it according to your system

var $port = 43;
var $MAXLEN = 100;

// If you want to automatically retry after connection failure,
// set the number of retries$ MAX_RETRIES
var $MAX_RETRIES = 0;
var $SLEEP_VAL = 1;
var $RETRY = 0;

var $FOUND = 0; // The query has no results and the secondary value is 0
var $ERROR = 0; // Number of errors during query
var $DATA_MIN = 8; // We should get at least 8 bytes of data
var $DATA_COUNT = 0;

var $WHOIS_SERVER;
var $NEW_WHOIS;
var $FURTHER_INFO = 0;


// Open the SOCKET connection with WHOIS SERVER
// The default is whois .internic.net
function connect ($server) {
$this->RETRY=0;
while($this->RETRY <= $this->MAX_RETRIES):
$ptr = fsockopen($server, $this->port);
if($ptr>0):
$this->ERROR=0; // just in case we're on a retry
return($ptr);
else:
$this->ERROR++;
$this->RETRY++;
sleep($this->SLEEP_VAL);
endif;
endwhile;
}

// Obtain simple query results and put them into an array in row units
//International domain name query
function rawlookup ($query , $server) {

if(!$query):
return( "");
endif;

$ptr=$this->connect($server );

if($ptr):
if(!ereg($query, "n$")):
$query .= "n";
endif;
fputs($ptr, "$query");
$i=0;
$this->FOUND=1;
while(!feof($ptr)):
$array [$i]=fgets($ptr,$this->MAXLEN);
$this->DATA_COUNT+=strlen(chop($array[$i]));
if(eregi( "No match for", $array[$i]) || eregi ("No entries found", $array[$i])):
$this->FOUND=0;
elseif(eregi( " WHOIS database is down",$array[$i])):
$this->ERROR++;
$this->FOUND=0;
elseif(eregi( "Please wait a while and try again",$array[$i])):
$this->ERROR++;
$this->FOUND=0;
break;
endif;
if( eregi("Whois Server:",$array[$i])):
$this->NEW_WHOIS=trim(substr(trim($array[$i]),(strlen(trim($array[$ i]))-13)*(-1)));
$this->FURTHER_INFO=1;
endif;
$i++;
endwhile;

fclose ($ptr);

if($this->DATA_COUNT>$this->DATA_MIN):
return($array);
else:
$this-> ERROR++;
endif;
else:
$this->ERROR++;
endif;
} ($query, $server) {
if(!$query):
return( "");
endif;

$ptr=$this->connect($server );
if($ptr):
if(!ereg($query, "n$")):
$query .= "n";
endif;
fputs( $ptr, "$query");
$i=0;
$this->FOUND=1;
while(!feof($ptr)):
$array[$i ]=fgets($ptr,$this->MAXLEN);
$this->DATA_COUNT+=strlen(chop($array[$i]));
if(eregi( "No match for" , $array[$i]) || eregi ("No entries found", $array[$i])):
$this->FOUND=0;
elseif(eregi( "WHOIS database is down",$array[$i])):
$this->ERROR++;
$this->FOUND=0;
elseif(eregi( "Please wait a while and try again" ,$array[$i])):
$this->ERROR++;
$this->FOUND=0;
break;
endif;
$i++;
endwhile;
fclose($ptr);

if($this->DATA_COUNT>$this->DATA_MIN):
return($array);
else:
$this->ERROR++;
endif;
else:
$this->ERROR++; 🎜>
$myWHOIS=new whois();

$thisname=$servername.$domainname;
// Select WHOIS SERVER based on domestic domain name or international domain name
if (ereg(" .cn$",$thisname))
{
$myWHOIS->WHOIS_SERVER="whois.cnnic.net.cn";
$array=$myWHOIS->cnrawlookup($thisname,$ myWHOIS->WHOIS_SERVER);
}
else
{
$myWHOIS->WHOIS_SERVER="whois.internic.net";
//$myWHOIS->WHOIS_SERVER="whois.networksolutions.com";
$ array=$myWHOIS->rawlookup($thisname,$myWHOIS->WHOIS_SERVER);
}



echo "
".$thisname."
";
echo "";
$x=0;
while ($x {
echo " $x ";
echo " $array[$x] ";
$x++;
}
echo "
";

if (!ereg(".cn$",$thisname))
{
echo "
Furth infomation
";
$array_further=$myWHOIS->rawlookup($thisname,$myWHOIS->NEW_WHOIS);

echo "";
$x=0;
while ($x {
echo " $x ";
echo " $array_further[$x] ";
$x++;
}
echo "
";
}

?> 

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/316451.htmlTechArticle1. Simplified code. (In fact, the definitions of some unnecessary variables have been removed) 2. The information retrieved from INTERNIC is too simple. According to the WHOIS SER in the information fed back by INTERNIC...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template