ホームページ  >  記事  >  バックエンド開発  >  HTTP_X_FORWARDED_FOR および REMOTE_ADDR PHP の使用

HTTP_X_FORWARDED_FOR および REMOTE_ADDR PHP の使用

WBOY
WBOYオリジナル
2016-08-08 09:21:521234ブラウズ

元の URL: http://qq398705749.iteye.com/blog/963818

PHP での HTTP_X_FORWARDED_FOR と REMOTE_ADDR の使用法
1.REMOTE_ADDR: 現在のページを閲覧しているユーザーのコンピューターの IP アドレス
2 。 HTTP_X _FORWARDED_FOR: 現在のページを閲覧しているユーザーのコンピューターのゲートウェイ
3.HTTP_CLIENT_IP: クライアントの IP (この属性は疑似属性として検証されており、実際には存在しません。誤解しないでください)
使用$_SERVER["REMOTE_ADDR in PHP "] を使用してクライアントの IP アドレスを取得しますが、クライアントがプロキシ サーバーを使用してアクセスする場合、取得されるのはプロキシ サーバーの IP アドレスであり、実際のクライアントの IP アドレスではありません。プロキシ サーバー経由でクライアントの実際の IP アドレスを取得するには、$_SERVER["HTTP_X_FORWARDED_FOR"] を使用します。 読むこと。
ただし、すべてのプロキシ サーバーが $_SERVER["HTTP_X_FORWARDED_FOR"] を使用してクライアントの実際の IP を読み取ることができるわけではないことに注意してください。このメソッドで読み取られる IP の一部は、依然としてプロキシ サーバーの IP です。
もう 1 つの注意点は、クライアントがプロキシ サーバー経由でアクセスしない場合、$_SERVER["HTTP_X_FORWARDED_FOR"] で取得される値は空になることです。
if ($_SERVER['HTTP_X_FORWARDED_FOR'] && preg_match('/^([0-9]{1,3}.){3}[0-9]{1,3}$/',$_SERVER ['Http_x_Forwarded_For'])) {
$ onlineip = $ _Server ['http_x_Forwarded_For']; ^([0-9] {1, )
ユーザーの IP アドレスの 3 つの属性 (HTTP_X_FORWARDED_FOR、HTTP_VIA) の取得の違い、REMOTE_ADDR)
1. プロキシサーバーを使用しない場合:
REMOTE_ADDR = あなたのIP
HTTP_VIA = 値がないか、表示されません
HTTP_X_FORWARDED_FOR = 値がないか、表示されません
2透明なプロキシ
REMOTE_ADDR = 最後のプロキシ サーバーの IP
HTTP_VIA = プロキシ サーバーの IP
HTTP_X_F ORWARDED_FOR = 実際の IP、複数のプロキシ サーバーを経由する場合、この値は次のようになります: 203.98.182.163、203.98.182.163、 .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 = ランダムな IP、複数のプロキシサーバーを経由する場合、この値は次のようになります。次のとおりです: 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 での HTTP_X_FORWARDED_FOR と REMOTE_ADDR の使用法を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。

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