获取用户 Ip 地址通用方法与常见安全(HTTP_X_FORWARDED_FOR)
这个来自一些项目中,获取用户 Ip,进行用户操作行为的记录,是常见并且经常使
用的。 一般朋友,都会看到如下通用获取 IP 地址方法
分析过程
这个来自一些项目中,获取用户 Ip,进行用户操作行为的记录,是常见并且经常使用的。
一般朋友,都会看到如下通用获取 IP
地址方法。
function
getIP() {
if
(isset(
$_SERVER
['HTTP_X_FORWARDED_FOR'])) {
$realip
=
$_SERVER
['HTTP_X_FORWARDED_FOR'];
}
elseif
(isset(
$_SERVER
['HTTP_CLIENT_IP'])) {
$realip
=
$_SERVER
['HTTP_CLIENT_IP'];
}
else
{
$realip
=
$_SERVER
['REMOTE_ADDR'];
}
return
$realip
;
}
这个是网上常见获取,ip 函数,用这些值获取 IP,我们首先要弄清楚,这些数据是从那个
地方传过来的。
IP
获取来源
1.'REMOTE_ADDR' 是远端 IP,默认来自 tcp 连接是,客户端的 Ip。可以说,它最准确,
确定是,只会得到直接连服务器客户端 IP。如果对方通过代理服务器上网,就发现。获取
到的是代理服务器 IP
了。
如:a->b(proxy)->c ,如果 c 通过'REMOTE_ADDR' ,只能获取到 b 的 IP,获取不到 a 的 IP 了。