函数:

function https_request($url,$data = null){
	$curl = curl_init();
	
	curl_setopt($curl,CURLOPT_URL,$url);
	curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
	curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);
	
	if(!empty($data)){//如果有数据传入数据
		curl_setopt($curl,CURLOPT_POST,1);//CURLOPT_POST 模拟post请求
		curl_setopt($curl,CURLOPT_POSTFIELDS,$data);//传入数据
	}
	
	curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
	$output = curl_exec($curl);
	curl_close($curl);
	
	return $output;
}

// 获取ip
function GetIp(){
	$realip = '';
	$unknown = 'unknown';
	if (isset($_SERVER)){
		if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR']) && strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], $unknown)){
			$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
			foreach($arr as $ip){
				$ip = trim($ip);
				if ($ip != 'unknown'){
					$realip = $ip;
					break;
				}
			}
		}else if(isset($_SERVER['HTTP_CLIENT_IP']) && !empty($_SERVER['HTTP_CLIENT_IP']) && strcasecmp($_SERVER['HTTP_CLIENT_IP'], $unknown)){
			$realip = $_SERVER['HTTP_CLIENT_IP'];
		}else if(isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR']) && strcasecmp($_SERVER['REMOTE_ADDR'], $unknown)){
			$realip = $_SERVER['REMOTE_ADDR'];
		}else{
			$realip = $unknown;
		}
	}else{
		if(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), $unknown)){
			$realip = getenv("HTTP_X_FORWARDED_FOR");
		}else if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), $unknown)){
			$realip = getenv("HTTP_CLIENT_IP");
		}else if(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), $unknown)){
				$realip = getenv("REMOTE_ADDR");
		}else{
			$realip = $unknown;
		}
	}
	$realip = preg_match("/[\d\.]{7,15}/", $realip, $matches) ? $matches[0] : $unknown;
	return $realip;
}




淘宝接口:

function get_area($ip = ''){
	if($ip == ''){
		$ip = GetIp();
	}
	$url = "http://ip.taobao.com/service/getIpInfo.php?ip={$ip}";
	$ret = https_request($url);
	$arr = json_decode($ret,true);
	return $arr;
}

echo "<pre>";
print_r(get_area('223.67.235.28'));
echo "</pre>";


新浪接口:

//根据ip获取所在城市名称
function GetIpLookup($ip = ''){
	if(empty($ip)){
		$ip = GetIp();
	}
	$res = @file_get_contents('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=' . $ip);//新浪的开放API
	if(empty($res)){ return false; }
	$jsonMatches = array();
	preg_match('#\{.+?\}#', $res, $jsonMatches);
	if(!isset($jsonMatches[0])){ return false; }
	$json = json_decode($jsonMatches[0], true);
	if(isset($json['ret']) && $json['ret'] == 1){
		$json['ip'] = $ip;
		unset($json['ret']);
	}else{
		return false;
	}
	return $json;
}

echo '<pre>';
// 输出城市等信息
$ipInfos = GetIpLookup('123.125.114.144'); //baidu.com IP地址
var_dump($ipInfos);

// 输出本地地址
echo GetIp();