1. 程式人生 > >php 如何獲取真實的客戶端ip

php 如何獲取真實的客戶端ip

最近在做一個需求,需要獲取客戶端ip,使用的是$_SERVER[”REMOTE_ADDR’],測試發現不真實

使用下列程式碼即可獲取真實ip,親測有效

//獲取使用者IP地址
    public function getIp()
    {

        if(!empty($_SERVER["HTTP_CLIENT_IP"]))
        {
            $cip = $_SERVER["HTTP_CLIENT_IP"];
        }
        else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
        {
            $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
        }
        else if(!empty($_SERVER["REMOTE_ADDR"]))
        {
            $cip = $_SERVER["REMOTE_ADDR"];
        }
        else
        {
            $cip = '';
        }
        preg_match("/[\d\.]{7,15}/", $cip, $cips);
        $cip = isset($cips[0]) ? $cips[0] : 'unknown';
        unset($cips);

        return $cip;
    }