ip地址不准的话,有办法解决一下吗?

做了个小网站,用阿里的api查了访问人的ip 归属地,但是我感觉全部都不准……
请问这个问题有办法解决吗?

我是山东的,但是我自己访问的时候老是成了天津..

阅读 5.2k
6 个回答

噗,你觉得它不准,这怎么说。

能举个例子么,这样子分析不了啊。

现在代理,翻墙的软件,对于写代码的都是必备的。那就会跑到外国去了.......

现在很多的都是通过代理,很难获取到真实的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];

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题