首页 > 如何获取稳定的真实ip?

如何获取稳定的真实ip?

服务端我用remote_addr 判断用户的ip,判断用户登入的cookie是根据密码和remote_addr 获取的ip生成的,今晚在酒店测试时 发现出错了。 连的wifi, 服务端获取的 remote_addr 总是变来变去,
可是在ip138上 看到的ip确是不变的 和服务端获取的remote_addr 也不一样,他是怎么实现的呢?如何获取客户真实的公网ip呢?


整体思路:需要依次检查HTTP_CLIENT_IPHTTP_X_FORWARDED_FORREMOTE_ADDR这三个是否
存在,只要一旦有一个存在就结束

其中对获取ip的三个属性HTTP_VIAHTTP_X_FORWARDED_FORREMOTE_ADDR在使用代理服务器时获取的情况
一、没有使用代理服务器的情况:
REMOTE_ADDR = 自己的真实IP
HTTP_VIA = 没数值或不显示
HTTP_X_FORWARDED_FOR = 没数值或不显示

二、使用Transparent Proxies(透明代理)服务器的情况
REMOTE_ADDR = 最后一个代理服务器IP
HTTP_VIA = 代理服务器IP
HTTP_X_FORWARDED_FOR = 自己的真实IP

三、使用Anonymous Proxies(匿名代理)服务器的情况
REMOTE_ADDR = 最后一个代理服务器IP
HTTP_VIA = 代理服务器IP
HTTP_X_FORWARDED_FOR = 代理服务器IP

四、使用Distorting Proxies(欺骗代理)服务器的情况:
REMOTE_ADDR = 代理服务器IP
HTTP_VIA = 代理服务器IP
HTTP_X_FORWARDED_FOR = 随机IP,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

五、使用Elite Proxies服务器的情况
REMOTE_ADDR = 代理服务器IP
HTTP_VIA = 没有数值或不显示
HTTP_X_FORWARDED_FOR = 没有数值或不显示,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

综上来看,PHP获取客户端真实IP的方法并不是能够百分之百成功的。

【热门文章】
【热门文章】