复制代符号代码如下:
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...