background image

获取用户 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 了。