「PHP で IP アドレスを取得する」を学習するには、まず IP アドレスを学習します。 IP アドレスまたはインターネット プロトコル アドレスは、ネットワークに接続されているすべてのシステムまたはデバイスが持つ数値アドレスまたはラベルであるアドレスです。 IP アドレスは、このようなすべてのデバイスに割り当てられます。これらのデバイスは、あらゆる種類の通信にインターネット プロトコルを使用します。
広告 このカテゴリーの人気コース PHP 開発者 - 専門分野 | 8コースシリーズ | 3 つの模擬テスト無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
以下の点で IP バージョンについて説明します:
セキュリティ上の理由から、サイトはサイト訪問者の IP アドレスを収集します。 PHP でこのアドレスを取得する簡単な方法があります。 PHP には、マシンの IP アドレスを返すのに役立つ特定の配列があります。配列は「$_SERVER」として知られています。これには、パス、ヘッダー、スクリプトの場所に関する情報が含まれています。 Web サーバーは、$_SERVER 配列に必要な情報を作成します。サーバーがアレイに必要なすべての情報を作成または提供しない場合があり、その一部が省略される場合があります。したがって、そのような場合に使用できる別の配列があります。 「SERVER_ADDR」と書きます。この配列は、スクリプトが実行されているサーバーの IP アドレスを返します。
以下は、php で IP アドレスを取得するために使用される例です。
最も簡単な方法は、$_SERVER を「REMOTE_ADDR」とともに使用することです。これにより、現在ページを表示しているユーザーの IP アドレスが返されます。
コード:
<?php echo 'User IP - '.$_SERVER['REMOTE_ADDR']; ?>
出力:
「SERVER_ADDR」と呼ばれる別のメソッド。これもサーバーの IP アドレスを取得するために使用されます。
コード:
<?php // PHP program to retrieve server’s Internet Protocol address // Creating a variable to store the server address $ip_server = $_SERVER['SERVER_ADDR']; // Displaying the retrieved address echo "Server IP Address is: $ip_server"; ?>
出力:
上記のプログラムの説明: マシンがプロキシ経由で接続されていない場合、上記の配列 [$_SERVER] の例が役に立ちます。マシンがプロキシ サーバー経由でインターネットに接続されている場合、PHP の $_SERVER[‘REMOTE_ADDR’] は正しい IP アドレスを返しません。プロキシ サーバーとユーザーまたはクライアントのマシンの IP アドレスを返すだけです。この状況では、別の方法を使用して正しいアドレスを取得します。
次の例は、マシンがプロキシ サーバーの背後に隠れている場合でも、正しい実際の IP アドレスを返すために使用されます。クライアントのシステムまたはマシンの正確な IP アドレスを取得するために使用できる追加の SERVER 変数ペアを使用します。これらは、HTTP_CLIENT_IP および HTTP_X_FORWARDED_FOR として知られています。
コード:
<?php function RetrieveUserIP() { if(!empty($_SERVER['HTTP_CLIENT_IP'])) { $address=$_SERVER['HTTP_CLIENT_IP']; } elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $address=$_SERVER['HTTP_X_FORWARDED_FOR']; } else { $address=$_SERVER['REMOTE_ADDR']; } return $address; } echo 'User IP Address is'.RetrieveUserIP(); ?>
出力:
上記のコードの動作の流れを理解したい場合は、次のフローチャートを参照してください。
上記プログラムの説明: IP アドレスを取得する上記の例では、2 つの変数 [‘HTTP_CLIENT_IP’] と [‘HTTP_X_FORWARDED_FOR’] を使用します。プログラムでは、HTTP_CLIENT_IP を使用してマシンから直接それを取得する最初の試みを行います。それが利用できない場合は、HTTP_X_FORWARDD_FOR を使用して「転送先」IP を試みます。両方の条件が null に該当する場合、REMOTE_ADDR 変数を使用して IP アドレスの取得を試みます。
php で IP アドレスを取得する際に覚えておくべきポイントは次のとおりです:
1.上記のコードを実行すると、返された IP アドレスは::1 として表示されます。これはループバック アドレスとして知られており、実際には 127 回のゼロとそれに続く 1、つまり (0000…. 127 回….1) として表されます。文字にすると次のようになります。
2.しかし、IPv6 では、この大きなラベルを短い形式で表すことができます。したがって、1 つのブロック内にすべて 0 がある場合、それを 1 つのゼロに置き換えることができます。したがって、上記のルールに従うと、0:0:0:0:0:0:0:0001;
となります。3.ここでもゼロを削除すると、次のようになります:: 0001
4.これは再び「:: 1」に縮小され、出力になります。
上記のコードの説明: プライベート ドメインはインターネット プロトコル アドレスを提供しないため、実行しても何も出力されないか、実行時エラーが返される可能性があります。一方、WAMP サーバーを使用した場合のように、上記のコードがローカル サーバーまたはローカル ホストで実行される場合、IP バージョンに応じた出力が提供されます。つまり、IPv4 の場合、インターネット プロトコル アドレスは次のようになります。 '127:0:0:1' と表示されますが、IPv6 の場合、インターネット プロトコル アドレスは上記のように ':: 1'
と表示されます。以上がPHPでIPアドレスを取得するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。