php获取客户端真实ip,这里通过超全局变量$_SERVER进行获取ip。在获取ip时,可以通过 $_SERVER['REMOTE_ADDR'] 就能直接得到ip,但通过$_SERVER['REMOTE_ADDR']获取ip时有可能是获取到用户代理服务器的ip,而代理服务器下的用户真实ip就需要使用$_SERVER['HTTP_X_FORWARDED_FOR']进行获取了,如果用户没有使用代理服务器$_SERVER['HTTP_X_FORWARDED_FOR']就会返回空。所以就有必要下面代码里的那么多判断了。
获取ip步骤:
代理服务器ip($_SERVER['HTTP_X_FORWARDED_FOR'])[可在http请求头中伪造]
↓
客户端ip($_SERVER['HTTP_CLIENT_IP'])[可在http请求头中伪造]
↓
真实的远程的客户端ip($_SERVER['REMOTE_ADDR'])[不能伪造,位于tcp/ip协议数据包中]
php获取客户端真实ip代码如下:
上面的方式获取ip时虽然会有伪造的可能,但也有参考的意义,在一些常用的网站访问情况可以满足,但如果在一些投票网站、购买支付类网站接口还是以 $_SERVER['REMOTE_ADDR']为准会好些。
获得ip归属地信息的API地址:
淘宝官方API:http://ip.taobao.com/
淘宝接口地址:http://ip.taobao.com/service/getIpInfo.php?ip=IPAddress
百度官方API: http://apistore.baidu.com/apiworks/servicedetail/114.html
百度接口地址:http://apis.baidu.com/apistore/iplookupservice/iplookup



