获取用户真实Ip地址
生活随笔
收集整理的這篇文章主要介紹了
获取用户真实Ip地址
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
REMOTE_ADDR 是你的客戶端跟你的服務器“握手”時候的IP。如果使用了“匿名代理”,REMOTE_ADDR將顯示代理服務器的IP。
HTTP_CLIENT_IP 是代理服務器發(fā)送的HTTP頭。如果是“超級匿名代理”,則返回none值。同樣,REMOTE_ADDR也會被替換為這個代理服務器的IP。
$_SERVER['REMOTE_ADDR']; //訪問端(有可能是用戶,有可能是代理的)IP
$_SERVER['HTTP_CLIENT_IP']; //代理端的(有可能存在,可偽造)
$_SERVER['HTTP_X_FORWARDED_FOR']; //用戶是在哪個IP使用的代理(有可能存在,也可以偽造)
?
if( !function_exists('get_client_ip') ) {function get_client_ip($type = 0, $adv = false) {
$type = $type ? 1 : 0;
static $ip = NULL;
if ($ip !== NULL)
return $ip[$type];
if ($adv) {
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$pos = array_search('unknown', $arr);
if (false !== $pos)
unset($arr[$pos]);
$ip = trim($arr[0]);
} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
} elseif (isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
// IP地址合法驗證
$long = sprintf("%u", ip2long($ip));
$ip = $long ? array(
$ip,
$long
) : array(
'0.0.0.0',
0
);
return $ip[$type];
}
}
轉(zhuǎn)載于:https://www.cnblogs.com/agang-php/p/5036860.html
總結
以上是生活随笔為你收集整理的获取用户真实Ip地址的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html调用applet
- 下一篇: 当你刷新当前Table时,刷新后如何回到