根据IP获取IP所在城市PHP

来源:互联网 发布:数据库闩定 编辑:程序博客网 时间:2024/06/14 15:05

1、获取当前用户的真实IP地址
final private function getIp(){ 
$onlineip = '';
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')){
$onlineip = getenv('HTTP_CLIENT_IP');
}else if(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')){
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
}else if(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')){
$onlineip = getenv('REMOTE_ADDR');
}else if(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')){
$onlineip = $_SERVER['REMOTE_ADDR'];
}
$ip = explode(',', $onlineip);
return $ip[0];
}

2、

//get请求
function curl_get($url){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 0);
$res = curl_exec($curl);
curl_close($curl);


return object_array(json_decode($res));
}

3、根据IP获取城市

function getCityByIp($ip){
$default_city = cookie('user_default_city');
if(empty($default_city)){
$ip = $this->getIp();
$url = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=" . $ip;
$res = $this->curl_get($url);
cookie('user_default_city', $res['city'] . '市');
}
return $default_city;
    }


原创粉丝点击