ホームページ > php教程 > php手册 > WHOIS クラスの修正バージョン。

WHOIS クラスの修正バージョン。

WBOY
リリース: 2016-06-21 09:13:17
オリジナル
1437 人が閲覧しました

1. コードを簡略化しました。 (実際には不要な変数の定義は削除されています)
2. INTERNICから取得した情報は単純すぎるため、INTERNICからフィードバックされた情報内のWHOIS SERVERを基にさらにクエリを実行します。たとえば、YAHOO の詳しい情報は whois.networksolutions.com にあります。

class whois {

var $use_cache = 1;
var $FROM_CACHE=0; // システムに応じて設定します

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

// 接続失敗後に自動的に再試行する場合は、
// 再試行回数を設定します $MAX_RETRIES
var $SLEEP_VAL = 1; 0;

var $FOUND = 0; データのバイト

var $WHOIS_SERVER;


// WHOIS SERVER との SOCKET 接続を開きます。
// デフォルトは whois.internic .net です
function connect ($server) {
$this->RETRY=0;
while($this->RETRY <= $this->MAX_RETRIES):
$ ptr = fsockopen、$ this&gt; port($ ptr);行単位で配列に入れる查 // 国際ドメイン名クエリ
Function rawlookup ($ Query, $ Server) {

IF (! $ Query):
Return ("")

$ ptr = $ This; - & GT; 接続 ($ Server );

if($ptr):
if(!ereg($query, "n$")):
$query .= "n" endif; fputs($ptr) , "$クエリ");
$i=0;                    $this->DATA_COUNT+=strlen(chop($array[$i]));  
if(eregi( "一致しません", $array[$i]) || eregi ("エントリが見つかりません", $array[$i])):
$this->FOUND=0;  
elseif(eregi( "WHOIS データベースがダウンしています",$array[$i])):
$this->ERROR++;  
$this->FOUND=0;  
elseif(eregi( "しばらく待ってからもう一度お試しください",$array[$i])):
$this->ERROR++;  
$this->FOUND=0;  
休憩;  
endif;  
if(eregi("Whois サーバー:",$array[$i])):
$this->NEW_WHOIS=trim(substr(trim($array[$i]),(strlen(trim($array[ $i]))-13)*(-1)));
$this->FURTHER_INFO=1;
endif;
$i++;  
終わり。  

fclose($ptr);  

if($this->DATA_COUNT>$this->DATA_MIN):
return($array);          
else:
$this->ERROR++;  
endif;  
else:
$this->ERROR++;  
endif;
}


// 国内ドメイン名查询
function 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( "一致しません", $array[$i]) || eregi ("エントリが見つかりません", $array[$i])):
$this->FOUND=0;  
elseif(eregi( "WHOIS データベースがダウンしています",$array[$i])):
$this->ERROR++;  
$this->FOUND=0;  
elseif(eregi( "しばらく待ってからもう一度お試しください",$array[$i])):
$this->ERROR++;  
$this->FOUND=0;  
休憩。  
endif;  
$i++;  
終わり;  
fclose($ptr);  

if($this->DATA_COUNT>$this->DATA_MIN):
return($array);          
else:
$this->ERROR++;  
endif;  
else:
$this->ERROR++;  
        エンドイフ;  
}
};



$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);
}
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 "
";
echo "
$x$array[$x]< /td>";
$x++;
}
echo "
";

if (!ereg(".cn$",$thisname))
{
echo "

詳細情報

";
$array_further=$myWHOIS->rawlookup($thisname,$myWHOIS->NEW_WHOIS);

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

?>  



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート