ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルを使用してクライアントの実際の IP を取得する方法

PHP_PHP チュートリアルを使用してクライアントの実際の IP を取得する方法

WBOY
WBOYオリジナル
2016-07-13 10:33:31695ブラウズ

REMOTE_ADDR は、10 など、訪問者のローカル接続に設定された IP のみを取得できます。プロキシ サーバーを使用すると、プロキシ サーバーの IP ではなく、訪問者のゲートウェイの実際の IP を取得します。 IP アクセスが制限されている Web ページにこの機能を適用すると、IP アクセスが制限されたセグメント内のプロキシ サーバーを経由しても、他のユーザーはそのページにアクセスできなくなります。

以下の関数が提供されます:

リーリー

getenv("REMOTE_ADDR") はクライアントの IP アドレスを取得するために使用されますが、クライアントがプロキシ サーバーを使用してアクセスする場合、取得されるのはプロキシ サーバーの IP アドレスであり、実際のクライアントの IP アドレスではありません。プロキシ サーバー経由でクライアントの実際の IP アドレスを取得するには、getenv("HTTP_X_FORWARDED_FOR") を使用して読み取ります。

ただし、クライアントがプロキシサーバー経由でアクセスしない場合、getenv("HTTP_X_FORWARDED_FOR") で取得した値は空になります。

リーリー

は、getenv("HTTP_X_FORWARDED_FOR") によって取得された値が空でない場合 (つまり、クライアントがプロキシ サーバーを使用する場合)、変数 $ip は getenv("HTTP_X_FORWARDED_FOR") によって取得された実際の IP 値と等しいことを意味します。

上記の else if(getenv("HTTP_X_FORWARDED_FOR")) で取得した値が空の場合 (つまり、プロキシ サーバーが使用されていない場合)、次の $ip = getenv("HTTP_X_FORWARDED_FOR") 行のステートメントは実行されません。

この場合、クライアントがプロキシサーバーを使用していないことが確認されているため、

リーリー

これら 2 行のステートメントは、クライアントの IP アドレスを取得します。これは実際の IP アドレスでもあります。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/752458.html技術記事 REMOTE_ADDR は、訪問者のローカル接続に設定された IP (10 など) のみを取得できます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。