インターネットの急速な発展に伴い、IP アドレスはネットワーク通信に不可欠な部分になりました。 IP アドレス情報は、ネットワーク セキュリティの監視、トラフィック管理、ターゲットを絞った電子商取引広告において非常に重要です。したがって、ユーザーが IP アドレス/ドメイン名情報を簡単に照会できるようにするために、多くの Web サイトでは IP アドレス照会機能が提供されています。この記事では、読者の参考のために、PHP を使用して IP アドレスクエリ機能を実装する方法を紹介します。
1. IP アドレスとは何ですか?
IP アドレス (インターネット プロトコル アドレス) は、インターネット プロトコル (インターネット プロトコル) のアドレスであるネットワーク プロトコル アドレスです。ネットワーク上のすべてのデバイスが通信するには IP アドレスが必要です。 IP アドレスは 32 ビットの 2 進数で構成され、通常は 0 ~ 255 の範囲の 4 バイトに分割されます。たとえば、「192.168.0.1」は IP アドレスです。
2. IP アドレスの取得
PHP では IP アドレスを取得する方法が数多くありますが、一般的に使用されるのは次のとおりです:
IP アドレスを取得する上記 3 つの方法の信頼性は環境によって異なるため、実際の状況に応じて適切な方法を選択する必要があります。
たとえば、次のコードは、HTTP_X_FORWARDED_FOR と HTTP_CLIENT_IP が存在するかどうかを検出して、現在のアクセス IP 情報を取得します。
function getIP(){ if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){ $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; }elseif(isset($_SERVER['HTTP_CLIENT_IP'])){ $ip = $_SERVER['HTTP_CLIENT_IP']; }else{ $ip = $_SERVER['REMOTE_ADDR']; } return $ip; }
IP アドレスはさまざまな形式で提供されるため、処理を容易にするためにデジタル形式に変換できます。次のコードは、IP アドレスを 32 ビットの符号なし整数に変換します。
function ip2long(string $ip): int { return sprintf("%u", ip2long($ip)); }
3. IP アドレスのクエリ
IP アドレスのクエリ プロセス中に、外部 API にアクセスして、私たちが必要とするデータ。この記事では、Taobao API を例として、PHP を使用して IP アドレス情報を取得する方法を紹介します。
まず、タオバオのオープンプラットフォームアカウントを登録してAPIインターフェースを申請し、APIアクセスアドレスとAppKeyを取得します。
次に、次のコードを使用して、API を通じて IP アドレスの位置情報とオペレーター情報を取得できます。
function getIpInfo($ip, $appkey){ $url = 'http://ip.taobao.com/service/getIpInfo.php?ip='.trim($ip).'&soft='.$appkey; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); $output = curl_exec($ch); curl_close($ch); $data = json_decode($output,true); return $data; }
上記のコードは、まず API インターフェイスのアドレスとパラメーターを結合し、次に CURL ライブラリを使用して HTTP リクエストを開始し、最後に JSON 形式のデータを返します。この関数を呼び出して IP 情報を取得します。
4. 完全なコード実装
以下は完全な PHP コード実装です:
function getIP(){ if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){ $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; }elseif(isset($_SERVER['HTTP_CLIENT_IP'])){ $ip = $_SERVER['HTTP_CLIENT_IP']; }else{ $ip = $_SERVER['REMOTE_ADDR']; } return $ip; } function ip2long(string $ip): int { return sprintf("%u", ip2long($ip)); } function getIpInfo($ip, $appkey){ $url = 'http://ip.taobao.com/service/getIpInfo.php?ip='.trim($ip).'&soft='.$appkey; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); $output = curl_exec($ch); curl_close($ch); $data = json_decode($output,true); return $data; } $ip = getIP(); $appkey = 'YOUR_APPKEY'; //替换为自己的AppKey $info = getIpInfo($ip, $appkey); print_r($info);
上記のコードは、アクセス IP アドレスの取得と、IP アドレスのデジタル形式への変換を実装しています。 、IP アドレス情報のクエリおよびその他の機能。読者はそれを自分のウェブサイトに適用し、対応する二次開発を行うことができます。
つまり、IP アドレス照会機能は、ネットワーク アプリケーションにおいて広範な応用価値を持っています。 PHP でこの関数を実装すると、クエリがより便利で高速になります。サードパーティ API を使用する場合は、情報の悪用を避けるために、関連する法規制とデータ セキュリティ対策に従う必要があることに注意してください。
以上がPHPはIPアドレスクエリ機能を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。