复制代符号代符号如下:
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 アドレス メッセージは取得する必要はありません (ブラウザが異なるため)そのため、PHP では、各 IP メッセージが古いかどうかを判断し、その中の 1 つを取得します。
上記は、php がゲスト端末を取得するための真の IP を介して、側面の内容を含むため、PHP 教則に関心のある友人の助けになることを望んでいます。