ホームページ  >  記事  >  バックエンド開発  >  php HTTP_X_FORWARDED_FOR、HTTP_VIA、REMOTE_ADDR の違いの概要_PHP チュートリアル

php HTTP_X_FORWARDED_FOR、HTTP_VIA、REMOTE_ADDR の違いの概要_PHP チュートリアル

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

この記事では、ユーザーの実際の IP アドレスを取得する場合の 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_FORWARDED_FOR = 複数のプロキシ サーバーを経由する場合、この値は次のようになります: 203.98.182.163、203.129.72.215。

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

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

REMOTE_ADDR = 最後のプロキシ サーバー IP
HTTP_VIA = プロキシサーバーのIP
HTTP_X_FORWARDED_FOR = プロキシ サーバー IP。複数のプロキシ サーバーを経由する場合、この値は 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 のようになります。

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

例 1 (ユーザーの実際の IP アドレスを取得する)

HP がユーザーの実際の IP アドレスを取得するためのコードは次のとおりです

コードは次のとおりです コードをコピー

関数getIp() {

if($_SERVER['HTTP_CLIENT_IP']) {

$ip = $_SERVER['HTTP_CLIENT_IP'] //PHP が IP を取得します

;

} elseif ($_SERVER['HTTP_X_FORWARDED_FOR']) {

$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];

} 他 {

$ip = $_SERVER['REMOTE_ADDR'] //PHP は IP を取得します

}

}


例子2

代码如下 复制幣

/*

mktime:2012/9/9

*/
//获取用户真实IP
関数 get_client_ip() {
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
それ以外
if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
それ以外
if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
それ以外
if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
それ以外
$ip = "不明";
リターン ($ip);
}
echo $ip=get_client_ip();//これは你的ip地址
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/633104.html技術記事この文章介在は、php 内の HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR 領域を取得します。 一、代理サーバーを使用しない場合: REMOTE_ADDR = 您的...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。