ホームページ > バックエンド開発 > PHPチュートリアル > PHP_PHP チュートリアルを使用した標準 IP Whois クエリの実装

PHP_PHP チュートリアルを使用した標準 IP Whois クエリの実装

WBOY
リリース: 2016-07-21 16:11:56
オリジナル
1100 人が閲覧しました

インターネットの歴史的な理由により、apin はネットワーク IP 全体の全体的な計画と、北米とアフリカの一部の IP 割り当て管理を担当しています。これに対応して、whois.apin.net は IP Whois のルート サーバーです。標準 IP Whois クエリ方法は、まず whois.apin.net にクエリを実行して IP がどのリージョンに属しているかをクエリし、次にそのリージョン内の Whois サーバーにこの IP の詳細な Whois 情報をクエリします。

現在 IPV4 を担当している地域
whois.arin.net アメリカ 北米
whois.apnic.net アジア太平洋にはアジアとオーストラリアが含まれます
whois.ripe.net ヨーロッパ ヨーロッパ/中東 (西アジア)/北アフリカ
whois .lacnic.net ラテンアメリカ、ラテンアメリカ、カリブ海諸国
アフリカのネットワークの IP クエリも whois.arin.net にあります
Whois クエリを Whois サーバーに送信するプロセス

のポート 43 への接続を開きますWhois サーバーにアクセスし、クエリ ドメイン名とキャリッジ リターンとライン フィードを送信します。複数のドメイン名をクエリする場合は、ドメイン名をスペースで区切って、sokect から結果を読み取ります。最後に、サーバーは自動的に切断されます。

PHP で実装
1. IP を確認します (ereg の代わりに ip2long を使用します)
2. データベースに関連する情報がない場合、紹介サーバーの URL が次の形式で提供されます。 ReferralServer:
この情報に基づいてクエリを続けます

コードは次のとおりです

whoisip.php

include_once "lang.inc.php"

$IP = isset($_GET[ 'ip'])?$_GET[ 'ip']:'blank'

if (-1 === ip2long($ip))
die(str_replace('%IP%', $IP, $Text[' ip_invalid']));

関数 GetWhois($IP)

$rootwhois = 'whois.arin.net'

$buffer = str_replace('% SERVER%', $rootwhois, $Text ['sock_connect']);

$buffer1 = ReadSocket($rootwhois,$IP)
if ($buffer1 !== '')
{
$whois = SubStrByTag("ReferralServer : whois://","n ",$buffer1);
//ポート番号 ":43" を削除;
if ( ($pos=strpos($whois,":")) !== FALSE)
{
$whois = substr($whois, 0,$pos);
}
if ($whois !== '')
{
$buffer .= str_replace('%SERVER%', $whois, $Text[' sock_connect']);
$buffer ($whois,$IP); }
else
.= $buffer1;
}
return nl2br($buffer); firstTag ,$nextTag,& $longStr)
{
$firstPos = strpos ($longStr,$firstTag);
$ret = '';
if ($firstPos !== FALSE)
{
$firstPos = strpos ($ longStr,$firstPos,$firstPos);
if ($secondPos !== FALSE)
{
$firstPos += strlen($firstTag)

$ret = substr($longStr,$firstPos,$secondPos-$firstPos); ;

}
}
return $ret;

function ReadSocket($whois,$ip)
{
$text = ''; $sock = fsockopen; , $errNum, $errStr , 20))
{
$buffer = str_replace('%SERVER%', $whois, $Text['sock_fail'])
}
else
{
fputs($sock,"$ ipn");
/ /$buffer = fread($sock, 8192);
while(!feof($sock)) $buffer.=fgets($sock, 8192);

fclose($sock);

}
return $buffer;
}

?>

言語ファイル:
lang.inc.php

$Text = Array(
'ip_invalid'=>'有効な IP を取得したいしかし、それは [%IP %] です。',
'sock_connect'=>'%SERVER% に問い合わせます ...
',
'sock_fail'=>'ホストに接続できません:%SERVER%'
);
?>

他の有名な Whois サーバー


1.Tucows (whois.opensrs.net) は一度に 1 つの接続しか持てません

dnsstuff はクエリするものです


2.BulkRegister (whois.bulkregiter.net)接続が多い場合は IP を一時的にブロックするので注意してください。その場合は

3.ネットワーク ソリューション (whois.networksolutions.com) は 1 日 1000 回のみチェックできます

4.ゴー ダディ (whois.godaddy.com)

5.whois.abuse.net

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/313798.html技術記事インターネットの歴史的な理由により、apin はネットワーク IP 全体の全体的な計画と、北米とアフリカの一部での IP 割り当て管理を担当しています。これに対応して、whois.apin.net は IP Whois です...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート