ホームページ  >  記事  >  バックエンド開発  >  PHPで実際のクライアントの実IPを取得する方法の紹介

PHPで実際のクライアントの実IPを取得する方法の紹介

高洛峰
高洛峰オリジナル
2017-03-22 17:19:411196ブラウズ

REMOTE_ADDR は、クライアントがサーバーと「ハンドシェイク」するときの IP です。 「匿名プロキシ」が使用されている場合、REMOTE_ADDR にはプロキシ サーバーの IP が表示されます。

HTTP_CLIENT_IP は、プロキシ サーバーによって送信される HTTP ヘッダーです。 「スーパー匿名プロキシ」の場合は、値 none が返されます。同様に、REMOTE_ADDR はこのプロキシ サーバーの IP に置き換えられます。

$_SERVER['REMOTE_ADDR']; //アクセス側(ユーザーの場合もプロキシの場合もある) IP

$_SERVER['HTTP_CLIENT_IP'] //エージェント側(存在する可能性がある、偽造可能)

$_SERVER ['HTTP_X_FORWARDED_FOR']; //ユーザーがプロキシとして使用している IP (存在する可能性もあれば、偽造される可能性もあります)

3 つの値の違いは次のとおりです。

1.プロキシサーバーが使用されます:

REMOTE_ADDR = あなたのIP

HTTP_VIA = 値なしまたは表示されません

HTTP_X_FORWARDED_FOR = 値なしまたは表示されません

2. 透過的プロキシサーバーを使用する場合: 透過的プロキシ

REMOTE_ADDR = 最後のプロキシサーバー IP

HTTP_VIA = プロキシ サーバー IP

HTTP_X_FORWARDED_FOR = 複数のプロキシ サーバーを経由する場合、この値は次のようになります: 203.98.182.163、203.129.72.215。

このタイプのプロキシ サーバーは依然としてあなたの情報を訪問者に転送するため、あなたの本当の身元を隠すという目的を達成することはできません。

3. 通常の匿名プロキシ サーバーを使用する場合: 匿名プロキシ

REMOTE_ADDR = 最後のプロキシ サーバー IP

HTTP_VIA = プロキシ サーバー IP

HTTP_X_FORWARDED_FOR = 複数のプロキシ サーバーを経由する場合、この値は次のようになります。 :203.98.182.163、203.98.182.163、203.129.72.215。

実際の IP を隠しますが、アクセスにプロキシ サーバーを使用していることを訪問者に明らかにします。

4. 不正なプロキシ サーバーの使用: プロキシの歪み

REMOTE_ADDR = プロキシ サーバー IP

HTTP_VIA = プロキシ サーバー IP

HTTP_X_FORWARDED_FOR = 複数のプロキシ サーバーを経由する場合、この値は次のようになります。 203.98、182.163、203.98.182.163、203.129.72.215。

訪問者に、プロキシ サーバーを使用していることを伝えますが、実際の IP の代わりに偽のランダム IP を作成してなりすますようにしてください。

5. 高匿名性プロキシ サーバーの使用: 高匿名性プロキシ (エリート プロキシ)

REMOTE_ADDR = プロキシ サーバー IP

HTTP_VIA = 値なしまたは表示なし

HTTP_X_FORWARDED_FOR = 複数のプロキシ サーバー経由、この値は次のようになります: 203.98.182.163、203.98.182.163、203.129.72.215。

プロキシ サーバーを使用してオブジェクトに直接アクセスしているのと同じように、すべての情報をプロキシ サーバーの情報で完全に置き換えます。

りー

以上がPHPで実際のクライアントの実IPを取得する方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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