Heim > Artikel > Backend-Entwicklung > WHOIS-Klasse in PHP (modifizierte Version)
1. Der Code wurde vereinfacht. (Tatsächlich wird lediglich die Definition einiger nicht verwendeter Variablen entfernt)
2. Da die von INTERNIC abgerufenen Informationen zu einfach sind, führen Sie eine weitere Abfrage basierend auf dem WHOIS-SERVER in den von INTERNIC zurückgegebenen Informationen durch. Genauere Informationen bietet YAHOO beispielsweise unter whois.networksolutions.com.
Klasse Whois {
var $use_cache = 1;
var $FROM_CACHE=0;
var $cache_dir = "./"; // Stellen Sie es entsprechend Ihrem System ein
var $port = 43;
var $MAXLEN = 100;
// Wenn Sie es nach einem Verbindungsfehler automatisch erneut versuchen möchten,
//Legen Sie die Anzahl der Wiederholungen fest $MAX_RETRIES
var $MAX_RETRIES = 0;
var $SLEEP_VAL = 1;
var $RETRY = 0;
var $FOUND = 0; // Die Abfrage hat keine Ergebnisse und der Sekundärwert ist 0
var $ERROR = 0; // Anzahl der Fehler während der Abfrage
var $DATA_MIN = 8; // Wir sollten mindestens 8 Bytes Daten erhalten
var $DATA_COUNT = 0;
var $WHOIS_SERVER;
var $NEW_WHOIS;
var $FURTHER_INFO = 0;
// Öffnen Sie die SOCKET-Verbindung mit WHOIS SERVER
// Der Standardwert ist whois.internic.net
Funktion connect ($server) {
$this->RETRY=0;
while($this->RETRY <= $this->MAX_RETRIES):
$ptr = fsockopen($server, $this->port);
if($ptr>0):
$this->ERROR=0; // nur für den Fall, dass wir es noch einmal versuchen
return($ptr);
sonst:
$this->ERROR ;
$this->RETRY ;
schlafen($this->SLEEP_VAL);
endif;
Ende;
}
// Einfache Abfrageergebnisse abrufen und in Zeileneinheiten in ein Array einfügen
// Abfrage internationaler Domainnamen
Funktion 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( „Keine Übereinstimmung für“, $array[$i]) || eregi („Keine Einträge gefunden“, $array[$i])):
$this->FOUND=0;
elseif(eregi( "WHOIS-Datenbank ist ausgefallen",$array[$i])):
$this->ERROR ;
$this->FOUND=0;
elseif(eregi( "Bitte warten Sie eine Weile und versuchen Sie es erneut",$array[$i])):
$this->ERROR ;
$this->FOUND=0;
Pause;
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 ;
Ende;
fclose($ptr);
if($this->DATA_COUNT>$this->DATA_MIN):
return($array);
sonst:
$this->ERROR ;
endif;
sonst:
$this->ERROR ;
endif;
}
// Abfrage des inländischen Domänennamens
Funktion cnrawlookup ($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( „Keine Übereinstimmung für“, $array[$i]) || eregi („Keine Einträge gefunden“, $array[$i])):
$this->FOUND=0;
elseif(eregi( "WHOIS-Datenbank ist ausgefallen",$array[$i])):
$this->ERROR ;
$this->FOUND=0;
elseif(eregi( "Bitte warten Sie eine Weile und versuchen Sie es erneut",$array[$i])):
$this->ERROR ;
$this->FOUND=0;
Pause;
endif;
$i ;
Ende;
fclose($ptr);
if($this->DATA_COUNT>$this->DATA_MIN):
return($array);
sonst:
$this->ERROR ;
endif;
sonst:
$this->ERROR ;
endif;
}
};
$myWHOIS=new whois();
$thisname=$servername.$domainname;
// 根据国内域名或国际域名选择WHOIS SERVER
if (ereg(".cn$",$thisname))
{
$myWHOIS->WHOIS_SERVER="whois.cnnic.net.cn";
$array=$myWHOIS->cnrawlookup($thisname,$myWHOIS->WHOIS_SERVER);
}
sonst
{
$myWHOIS->WHOIS_SERVER="whois.internic.net";
//$myWHOIS->WHOIS_SERVER="whois.networksolutions.com";
$array=$myWHOIS->rawlookup($thisname,$myWHOIS->WHOIS_SERVER);
}
Echo "
„.$dieserName.“
";
Echo „“;
$x=0;
while ($x {
echo " $x ";
echo " $array[$x] ";
$x ;
}
echo "
";
if (!ereg(".cn$",$thisname))
{
Echo "
Weitere Informationen
";
$array_further=$myWHOIS->rawlookup($thisname,$myWHOIS->NEW_WHOIS);
Echo „“;
$x=0;
while ($x {
echo " $x ";
echo " $array_further[$x] ";
$x ;
}
echo "
";
}
?>
以上就介绍了php中的WHOIS类(修改版), 包括了WHOIS类方面的内容, 希望对PHP教程有兴趣的朋友有所帮助。