本文作者:心月

php获取ip所属城市

心月IT博客 2019-11-14
php获取ip所属城市摘要:有时在项目中做用户数据统计时用户所在地比访客IP更有用,但php中可以获取到访客ip,却不能直接获取到访客所在地,它需要通过第三方接口查询IP的归属地,然后把IP的归属地作为访客的所在地。

        有时在项目中做用户数据统计时用户所在地比访客IP更有用,但php中可以获取到访客ip,却不能直接获取到访客所在地,它需要通过第三方接口查询IP的归属地,然后把IP的归属地作为访客的所在地。

        但这个获取IP所在地的第三方接口去哪找呢?

不知道你们有没有用搜索引擎(百度、360、搜狗)搜索过IP没:

搜索引擎搜索IP

搜索引擎搜索IP居然能直接显示IP归属地,是不是很神奇啊!!所以呢,查询IP归属地的第三方接口就有了:

IP归属地查询接口


百度的IP归属地查询接口结果还要进行二次处理;360的把查询结果转化成数组就可以了,不需要二次处理;搜狗的虽然搜索ip能查到归属地,但直接用的话需要权限,所以,今天这里我们用360的接口来获取IP归属地:

function _httpCurl($url, $type='get', $res='json', $jsonp='', $arr='', $headers=[]){
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        if (!empty($headers)) {
        	curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
        }
		if ($type == 'post') {
			curl_setopt($ch, CURLOPT_POST, 1);
			curl_setopt($ch, CURLOPT_POSTFIELDS, $arr);
		}
		$cnt = curl_exec($ch);
		if (curl_errno($ch)) {
			return;
		}
		curl_close($ch);
		if ($res == 'json') {
			return json_decode($cnt, true);
		}
		return $cnt;
	}
	$ip = '112.18.1.1';/在使用的时候只需要把这个IP换成你想要查的IP就可以了
	$url = 'https://open.onebox.so.com/dataApi?type=ip&src=onebox&query=ip&ip='.$ip.'&url=ip';
	$res = _httpCurl($url);
	var_dump($res);

php获取ip所属城市

文章版权及转载声明:

本文由 心月IT技术博客 博主整理于 2019-11-14
若转载请注明原文及出处:https://www.xinyueseo.com/other/499.html

分享到:
赞(
发表评论
快捷输入:

验证码

    评论列表 (有 0 条评论,人围观)参与讨论