ホームページ  >  記事  >  バックエンド開発  >  php client_PHP チュートリアルの実際の IP を取得する

php client_PHP チュートリアルの実際の IP を取得する

WBOY
WBOYオリジナル
2016-07-21 15:42:19788ブラウズ

复制代符号代码如下:

function GetIP(){
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP") ");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "不明";
return($ip);
}

regist=off の问题
if ($register_globals!=1) {
@extract($_SERVER, EXTR_SKIP);
@extract($_COOKIE, EXTR_SKIP);
@extract($_SESSION, EXTR_SKIP);
@extract($_POST, EXTR_SKIP);
@extract($_FILES, EXTR_SKIP);
@extract($_GET, EXTR_SKIP);
@extract($_ENV, EXTR_SKIP);
}
その中のREMOTE_ADDR比はよく理解してください、phpハンド上に既定の量であるという説明があります;一方、HTTP_x_FORWARDED_FOR呢、ネットワーク上でいくつかの料金がかかります、これはPHP中で使用されています$_SERVER["REMOTE_ADDR"] 来取得客户端末の IP アドレスですが、クライアントがプロキシ サーバーを使用して接続している場合、取得されるのは、真のクライアントの IP アドレスではなく、プロキシ サーバーの IP アドレスです。
注意すべき点は、各プロキシ サーバーが $_SERVER["HTTP_X_FORWARDED_FOR"] を使用してクライアントの真の IP を取得できるわけではなく、一部はこの方法で取得されることです。

HTTP_CLIENT_IP に至るまで、サブセクション上の通知があります
'HTTP_CLIENT_IP' はユーザの IP、'HTTP_X_FORWARDED_FOR' はプロキシの IP です
これらの IP アドレス メッセージは取得する必要はありません (異なるブラウザであるため)異なるネットワーク デバイスでは、異なる IP メッセージが送信される可能性があります)。そのため、PHP は各 IP メッセージを順番に判断し、その中の 1 つを取得します。

http://www.bkjia.com/PHPjc/320998.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/320998.html技術記事関数 GetIP(){ if (getenv("HTTP_CLIENT_IP") strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); else if (getenv("HTTP_X_F...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。