php 获取客户端的ip

/**
 * 获取客户端IP地址
 * 
 * @param integer $type
 *            返回类型 0 返回IP地址 1 返回IPV4地址数字
 * @return mixed
 */

if (! function_exists ( 'get_client_ip' )) {
    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 = ip2long ( $ip );
        $ip = $long ? array($ip,$long 
        ) : array('0.0.0.0',0 
        );
        return $ip [$type];
    }
}