獲取IP地址方法

Json______發表於2017-10-10
/**

 * 獲取客戶端IP地址

 * @param integer $type 返回型別 0 返回IP地址 1 返回IPV4地址數字

 * @return mixed

 */

function get_client_ip($type = 0) {

   $type       =  $type ? 1 : 0;

    static $ip  =   NULL;

    if ($ip !== NULL) return $ip[$type];

    if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {

        $arr    =   explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);

        $pos    =   array_search('unknown',$arr);

        if(false !== $pos) unset($arr[$pos]);

        $ip     =   trim($arr[0]);

    }elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {

        $ip     =   $_SERVER['HTTP_CLIENT_IP'];

    }elseif (isset($_SERVER['REMOTE_ADDR'])) {

        $ip     =   $_SERVER['REMOTE_ADDR'];

    }

    // IP地址合法驗證

    $long = sprintf("%u",ip2long($ip));

    $ip   = $long ? array($ip, $long) : array('0.0.0.0', 0);

    return $ip[$type];

}

相關文章