更多>>PHP程序设计 Blog

PHP根据IP地址获取国家省市县等地区的简单方法

目前比较常用的根据IP地址获取所在地区的API如下有:新浪IP地址获取地区接口、淘宝IP地址获取地区接口。

1、新浪IP地址获取地区接口

http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=

其中传递的参数中format的值,可选的为:json、js

封装函数如下:


$ip = '113.17.174.45';

/**
 * 新浪IP获取地区接口
 * 调用:get_ip_area_sina('113.17.174.45')
 * 返回值:数组:country国家,province省,city市
 */ 
function get_ip_area_sina($ip = ''){
	if(empty($ip)){
		return '请输入IP地址';
	}
	$area_info = @file_get_contents('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$ip);
	if(empty($area_info)){
		return false;
	}
	$jsonMatches = array();  
	preg_match('#\{.+?\}#', $area_info, $jsonMatches);
	if(!isset($jsonMatches[0])){
		return false;
	}
	$ipinfo = json_decode($jsonMatches[0], true);
	if(isset($ipinfo['ret']) && $ipinfo['ret'] == 1){
		$ipinfo['ip'] = $ip;
	}else{
		return false;
	}
	return $ipinfo;
}
$data = get_ip_area_sina($ip);
echo $data['country'];
print_r($data);


2、淘宝IP地址获取地区接口

淘宝IP地址库官网地址:http://ip.taobao.com/

http://ip.taobao.com/service/getIpInfo.php?ip=

不过淘宝对访问次数有限制,官网说明如下:

为了保障服务正常运行,每个用户的访问频率需小于10qps。


这里有个 qps 的概念,那么什么是qps呢?

qps是指每秒内查询的次数。如10qps,表示1秒内可执行10次。


封装函数如下:

/**
 * 淘宝IP获取地区接口
 * 调用:get_ip_area_taobao('113.17.174.45')
 * 返回值:数组:country国家,region省,city市
 */ 
function get_ip_area_taobao($ip = ''){ 
	if(empty($ip)){
		return '请输入IP地址';
	}
	$area_info = @file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$ip);
	$area_info = json_decode($area_info, true);
	if(isset($area_info['code']) && $area_info['code'] == 0){
		$ipinfo = $area_info['data'];
	}else{
		return false;
	}
	return $ipinfo;
}
$data = get_ip_area_taobao($ip);
echo $data['country'];
print_r($data);


评论列表

暂时没有相关记录

发表评论

用来接收审核回复提醒,请认真填写

  换一张?
captcha
看不清?点击图片换一张