ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルを使用してサーバーの IP アドレスを正確に取得する方法

PHP_PHP チュートリアルを使用してサーバーの IP アドレスを正確に取得する方法

WBOY
WBOYオリジナル
2016-07-13 09:52:14821ブラウズ

PHPでサーバーのIPアドレスを正確に取得する方法

この記事では、PHPでサーバーのIPアドレスを正確に取得する方法の例を説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです:

phpでは通常$_SERVER['HTTP_HOST']を使ってURL内のWebサイトのドメイン名やIPアドレスを取得します。

PHPマニュアルの説明は以下の通りです:

「HTTP_HOST」

Hostの内容: 現在のリクエストのヘッダー情報。

一般に、この方法では問題は発生しません。PFC3 や FLEA などの一部の一般的な PHP フレームワークも、この事前定義された変数に基づいています。

しかし、最近取り組んでいたプロジェクトで、テストのためにプログラムを顧客に渡すと、プログラムのジャンプが常に失敗することがわかりました。

最後に理由を見つけます: お客様の環境では、$_SERVER['HTTP_HOST'] によって取得される値は常に、LAN 内でプログラムが配置されているサーバーの IP 値です。

その理由は、お客様の会社はサーバーを介してインターネットに接続されており、プログラムが配置されているサーバーはドメイン名を介してマッピングされている、つまり途中に「プロキシ」プロセスが存在するためです。

したがって、そのような環境では、$_SERVER['HTTP_HOST']で取得される値は常に、LAN内でプログラムが配置されているサーバーのIP値になります。

最後に、多くの情報を確認し、symfony フレームワークでの代替実装方法を見つけました:

します

コードは以下の通りです:

$host = $_SERVER['HTTP_HOST'];

次のように置き換えます:

コードは以下の通りです:

$host = isset($_SERVER['HTTP_X_FORWARDED_HOST']) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '');

この記事が皆様の PHP プログラミング設計に役立つことを願っています。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1009817.html技術記事 PHP でサーバーの IP アドレスを正確に取得する方法 この記事では、PHP でサーバーの IP アドレスを正確に取得する方法について説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです: php では、...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。