分享三个可用的IP查询API

2018年8月6日22:00:11 2 2,153 次
摘要

最近正在写一个后台评论列表显示IP归属地的代码,快写完才发现以前能用的有道、新浪的ip查询api接口全部失效了。IP138的查询只有免费的区区1000次根本满足不了需要。难道就没有免费的api了么?经过半个晚上的搜索整理,找到三个免费的IP查询API:百度、淘宝和太平洋电脑网,都是来自大公司的哦!

最近正在写一个后台评论列表显示IP归属地的代码,快写完才发现以前能用的有道、新浪的ip查询api接口全部失效了。IP138的查询只有免费的区区1000次根本满足不了需要。难道就没有免费的api了么?经过半个晚上的搜索整理,找到三个免费的IP查询API,都是来自大公司的哦!

1.百度opendata

接口URL:http://opendata.baidu.com/api.php?query=42.196.245.48&co=&resource_id=6006&t=1412300361645&ie=utf8&oe=gbk&cb=op_aladdin_callback&format=json&tn=baidu(点击链接查看返回数据,ie下可能会弹出下载窗口)

返回数据格式:jsonp,json,xml

参数说明:

query:要查询的IP地址

co:未知

resource_id:请求的资源ID,6006不可更改

t:查询时间,在返回的查询结果中出现

ie, oe:猜测应为返回结果的charset,出现乱码时可尝试更改

cb:回调函数名,需要jsonp跨域是需添加此参数。无此参数时返回json格式数据

format:返回数据格式,默认为json,还可返回xml

HTML示例代码:

<html>
<head>
<title>百度IP查询API测试 - jsonp跨域</title>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<div>您查询的IP地址来自:<span id='location'></span></div>
<script>
$(document).ready(function(){
   $.getScript("http://opendata.baidu.com/api.php?query=42.196.245.48&co=&resource_id=6006&t=1412300361645&ie=utf8&oe=gbk&cb=mrz&format=json");
})
function mrz(res){
  $('#location').html(res['data'][0]['location']);
}
</script>
</body>
</html>

注意:前端调用时必须使用jsonp方式,否则会产生跨域。

php方式:

<?php
$api = 'http://opendata.baidu.com/api.php?query=42.196.245.48&co=&resource_id=6006&t=1412300361645&ie=utf8&oe=utf8&format=json';
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$api);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_HEADER,0);
$res = curl_exec($ch);
$res = json_decode($res,true);
curl_close($ch);
echo $res['data'][0]['location'];

2. pconline太平洋电脑网API

api接口地址:http://whois.pconline.com.cn/jsFunction.jsp?callback=jsShow&ip=114.114.114.114(点击链接查看返回数据,ie下可能会弹出下载窗口)

返回数据格式:jsonp

参数说明:

callback:回调函数名,未指定则回调IPCallBack

ip:需要查询的ip地址

实例代码:请参考第一部分html代码

3.淘宝ip查询API

api接口地址:http://ip.taobao.com/service/getIpInfo.php?ip=myip(点击链接查看返回数据,ie下可能会弹出下载窗口)

返回数据格式json

参数说明:

IP:需要查询的ip地址

示例代码请参考第一部分php代码

avatar

评论已关闭!

目前评论:2   其中:访客  0   博主  2

    • avatar mr.z Admin

      绝壁能用了

        • avatar mr.z Admin

          @mr.z 反反复复付付付