Heim  >  Artikel  >  Backend-Entwicklung  >  WHOIS-Klasse in PHP (modifizierte Version)

WHOIS-Klasse in PHP (modifizierte Version)

WBOY
WBOYOriginal
2016-08-08 09:34:041105Durchsuche

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教程有兴趣的朋友有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn