PHP获取客户端IP的问题?

/**

* 获取客户端IP地址

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

* @param boolean $adv 是否进行高级模式获取(有可能被伪装)

* @return mixed

*/

function get_client_ip($type = 0,$adv=false) {

$type =$type ? 1 : 0;

static $ip= NULL;

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

if($adv){

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];

}

}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];

}

贴一个THinkphp里面的实现,自己去试试