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

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

Jul 13, 2016 am 10:58 AM
internet php 歴史 理由 成し遂げる お問い合わせ 標準 使用 通信網

インターネットの歴史的な理由により、apin はネットワーク IP 全体の全体的な計画と、北米とアフリカの一部の IP 割り当て管理を担当しています。これに対応して、whois.apin.net は IP Whois のルート サーバーです。 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サーバーに送信するプロセス

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

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

コードは次のとおりです

whoisip.php

<?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);

関数GetWhois($IP)

{
グローバル $Text
$rootwhois = 'whois.arin.net'; $buffer = str_replace('%SERVER%', $rootwhois, $Text['sock_connect']); $buffer1 = ReadSocket($rootwhois,$IP); if ($buffer1 !== '')
{
$whois = SubStrByTag("参照サーバー: whois://"," ",$buffer1); //ポート番号「:43」を削除します
; if ( ($pos=strpos($whois,":")) !== FALSE)
{
$whois = substr($whois, 0,$pos); }
if ($whois !== '')
{
$buffer .= str_replace('%SERVER%', $whois, $Text['sock_connect']); $buffer .= ReadSocket($whois,$IP);
}
それ以外は
{
$buffer .= $buffer1
; }
}
nl2br($buffer) を返します。 }

関数 SubStrByTag($firstTag,$secondTag,&$longStr)
{
$firstPos = strpos ($longStr,$firstTag); $ret = ''; if ($firstPos !== FALSE)
{
$secondPos = strpos ($longStr,$secondTag,$firstPos); if ($秒位置 !== FALSE)
{
$firstPos = strlen($firstTag); $ret = substr($longStr,$firstPos,$secondPos-$firstPos); }

}

$ret を返します。 }

関数 ReadSocket($whois,$ip)
{
グローバル $Text
$バッファ = ''; if (!$sock = fsockopen( $whois, 43, $errNum, $errStr, 20))
{
$buffer = str_replace('%SERVER%', $whois, $Text['sock_fail']); }
それ以外は
{
fputs($sock,"$ip "); //$buffer = fread($sock, 8192); while(!feof($sock)) $buffer.=fgets($sock, 8192); fclose($sock); }
$バッファを返す
}

?>

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

<?php
$Text = 配列(
'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




http://www.bkjia.com/PHPjc/632015.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/632015.html

技術記事

インターネットの歴史的な理由により、apin はネットワーク IP 全体の全体的な計画と、北米とアフリカの一部での IP 割り当て管理を担当しています。これに対応して、whois.apin.net は IP Whois です...

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

CakePHP の日付と時刻

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

CakePHP ファイルのアップロード

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

CakePHP ルーティング

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

CakePHP プロジェクトの構成

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP について話し合う

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP クイックガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法

See all articles