PHP获取客服端的真实IP地址

更新时间是2019年1月7号
今天做Magento 1.X  PHP项目的时候, 需要获取客服端的真实ip地址,大家都认为是直接写入$_SERVER[“REMOTE_ADDR”]就可以了,但是有的时候这样获取的并不是真正的客服端ip地址,有可能是代理ip地址。所以失败。
网上找了好多资料,到处都是抄袭,你抄袭我的我抄袭你的,千篇一律的。结果google很久,最终找到最好的解决办法,代码如下:
自己把这些代码封装成函数,方便大家使用!
      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');
    }
登录 评论
  订阅  
提醒