更新时间是2019年1月7号
今天做Magento 1.X PHP项目的时候, 需要获取客服端的真实ip地址,大家都认为是直接写入$_SERVER[“REMOTE_ADDR”]就可以了,但是有的时候这样获取的并不是真正的客服端ip地址,有可能是代理ip地址。所以失败。
网上找了好多资料,到处都是抄袭,你抄袭我的我抄袭你的,千篇一律的。结果google很久,最终找到最好的解决办法,代码如下:
自己把这些代码封装成函数,方便大家使用!
1 2 3 4 5 6 7 8 9 10 11 | private function getRealIP() { if(isset($_SERVER)){ if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])) return $_SERVER["HTTP_X_FORWARDED_FOR"]; if(isset($_SERVER["HTTP_CLIENT_IP"])) return $_SERVER["HTTP_CLIENT_IP"]; return $_SERVER["REMOTE_ADDR"]; } if(getenv('HTTP_X_FORWARDED_FOR'))return getenv('HTTP_X_FORWARDED_FOR'); if(getenv('HTTP_CLIENT_IP'))return getenv('HTTP_CLIENT_IP');return getenv('REMOTE_ADDR'); } |