常用的IP地址查询接口API及IP查询接口调用方法
最近在调试笨牛网的站长工具箱(http://tools.bnxb.com),在网上找了一大堆接口,最终用了淘宝的接口实现查询IP地址和IP归属地功能,今天就将整理的常用IP地址查询接口及调用方法分享一下:
腾讯IP地址查询接口:http://fw.qq.com/ipaddress
新浪IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js
搜狐IP地址查询接口:http://pv.sohu.com/cityjson
谷歌IP地址查询接口:http://j.maxmind.com/app/geoip.js
有道IP地址查询接口:http://www.youdao.com/smartresult-xml/search.s
360IP地址查询接口: http://ip.360.cn/IPQuery/ipquery?ip=访客的IP
1616 IP地址查询接口:http://w.1616.net/chaxun/iptolocal.php
126 http://ip.ws.126.net/ipquery?ip=yourip
hao123 http://app.hao123.com/ipquery/getcity.php?rtype=2
淘宝 http://ip.taobao.com/service/getIpInfo.php?ip=117.89.35.58
太平洋电脑网 http://whois.pconline.com.cn/
百度:https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query=要查询的IP&co=&resource_id=6006&t=1488163851795&ie=utf8&oe=gbk&cb=op_aladdin_callback&format=json&tn=baidu&cb=jQuery1102007553074611919763_1488163568327&_=1488163568331
设计蜂巢接口调用方法
API请求地址 : http://www.hujuntao.com/api/ip/ip.php?参数
参数说明:
IP : IP地址 可选
format : 输出格式 json 可选 默认为JS
JSON调用示例:
请求地址:http://www.hujuntao.com/api/ip/ip.php?callback=jquery17107324279078748077_1327024991339&format=json&_=1327024991363
{
“ip”: “117.89.35.58″,
“province”: “u6c5fu82cf”,
“city”: “u5357u4eac”
}
腾讯接口调用方法
<script type="text/javascript" src="http://fw.qq.com/ipaddress"></script><script type="text/javascript">// < ![CDATA[
// < ![CDATA[
//反回格式如下: //var IPData = new Array("117.89.35.98","","江苏省","南京市"); console.log(IPData[0] ',' IPData[2] ',' IPData[3]) //117.89.35.98,江苏省,南京市
// ]]></script>
该方法已经不可用,访问http://fw.qq.com/ipaddre显示“The page you are looking for is temporarily unavailable.
Please try again later.”。腾讯对Referer做了判断,虽然可以通过PHP伪造Referer,但是实际测试中获得的是服务器的IP地址而不是客户端的IP地址。我们一起鄙视一下腾讯。
新浪接口调用方法
新浪这个应该说是最不错的。并且返回的数据类型为可以自定义格式(默认为纯文本格式,根据format的参数定义,还可以返回JS、Json格式。下面列举的是JS的格式)。
接口使用例子(PHP):
<?php $ip = @file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=".$_GET["ip"]); echo $ip; ?>
另外一个例子,用CURL
<?php function getIPLoc_sina($queryIP){ $url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$queryIP; $ch = curl_init($url); curl_setopt($ch,CURLOPT_ENCODING ,'utf8'); curl_setopt($ch, CURLOPT_TIMEOUT, 5); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 获取数据返回 $location = curl_exec($ch); $location = json_decode($location); curl_close($ch); $loc = ""; if($location===FALSE) return ""; if (empty($location->desc)) { $loc = $location->province.$location->city.$location->district.$location->isp; }else{ $loc = $location->desc; } return $loc; } echo getIPLoc_sina("183.37.209.57"); ?>
返回值数据格式:
var remote_ip_info = {“ret”:1,”start”:”59.37.164.179″,”end”:”59.37.165.17″,”country”:”u4e2du56fd”,”province”:”u5e7fu4e1c”,”city”:”u6c5fu95e8″,”district”:””,”isp”:”u7535u4fe1″,”type”:””,”desc”:””};
附:JQuery下的getScript()方法:
<div id="sina_ip_info"></div> <script src="http://code.jquery.com/jquery-1.7.2.min.js" type="text/javascript"></script> <script type="text/javascript"> var uip = '8.8.8.8'; $.getScript('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip='+uip, function(_result){ var ipData = ""; //初始化保存内容变量 if (remote_ip_info.ret == '1'){ ipData += "IP 详细信息:<br>"; ipData += "IP:" + uip + "<br>"; ipData += "国家:" + remote_ip_info.country + "<br>"; ipData += "省份:" + remote_ip_info.province + "<br>"; ipData += "城市:" + remote_ip_info.city + "<br>"; ipData += "区:" + remote_ip_info.district + "<br>"; ipData += "ISP:" + remote_ip_info.isp + "<br>"; ipData += "类型:" + remote_ip_info.type + "<br>"; ipData += "其他:" + remote_ip_info.desc + "<br>"; $("#sina_ip_info").html(ipData); //显示处理后的数据 } else { alert('错误', '没有找到匹配的 IP 地址信息!'); } }); </script>
搜狐接口调用方法
<script type="text/javascript" src="http://pv.sohu.com/cityjson?ie=utf-8"></script><script type="text/javascript">// < ![CDATA[
// < ![CDATA[
//默认为GBK可通过ie参数设置编码 console.log(returnCitySN["cip"] ',' returnCitySN["cname"])//117.89.35.98,江苏省南京市
// ]]></script>
谷歌接口调用方法
据说是谷歌的,不知道是不是真的。
<script type="text/javascript" src="http://j.maxmind.com/app/geoip.js"></script><script type="text/javascript">// < ![CDATA[
// < ![CDATA[
console.log(geoip_country_name() ',' geoip_region_name() ',' geoip_city())//China,Jiangsu,Nanjing
// ]]></script>
有道接口调用方法
调用接口示例:http://www.youdao.com/smartresult-xml/search.s?type=ip&q=123.233.157.9
返回XML数据
<?xml version=”1.0″ encoding=”gbk”?>
<smartresult>
<product type=”ip”>
<ip>123.233.157.9</ip>
<location>山东省济南市 网通</location>
</product>
</smartresult>
或者
http://www.youdao.com/smartresult-xml/search.s?jsFlag=true&keyfrom=163.com&event=fYodaoCallBack&type=ip&q=192.168.1.1
返回JSON数据
fYodaoCallBack(1, {‘product’:'ip’,'ip’:’192.168.1.1′,’location’:'局域网 对方和您在同一内部网’} , ”);
126 IP API
126提供的这个功能方面不如新浪但是数据相对来说是比较准确的。
http://ip.ws.126.net/ipquery?ip=yourip
使用方法非常简单,已知的参数只有一个ip,也就是你要查询的ip地址。
返回的数据是一个js脚本,如下所示
var lo="广东省", lc="广州市"; var localAddress={city:"广州市", province:"广东省"}
其中lo是地址所在省,lc为地址所在市,localAddress为归属地地址的json格式数据。
使用该api非常简单,直接在前端引用该api即可。
例如:
<script src='http://ip.ws.126.net/ipquery?ip=114.114.114.114'></script>
<script>
console.log(lo+' '+lc); //广东省 广州市
</script>
或者通过ajax调用(将以下代码复制到html文件即可预览效果。)
例如:
<!DOCTYPE html>
<html>
<head>
<title>测试</title>
<script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<input type="textarea" id="ip" />
<br />
<br />
<input type="textarea" id="result" />
<br />
<br />
<input type="button" value="查询" id="query" />
<script>
$(document).ready(function(){
$('#query').click(function(){
$.getScript('http://ip.ws.126.net/ipquery?ip='+$('#ip').val(),
function(){
$('#result').val(lo + " "+ lc);
}
);
})
});
</script>
</body>
</html>
淘宝IP地址库
目前看来也是非常不错,跟新浪接口差不多,不过海外访问没有新浪快,提供的服务包括:
1. 根据用户提供的IP地址,快速查询出该IP地址所在的地理信息和地理相关的信息,包括国家、省、市和运营商。
2. 用户可以根据自己所在的位置和使用的IP地址更新我们的服务内容。
优势:
1. 提供国家、省、市、县、运营商全方位信息,信息维度广,格式规范。
2. 提供完善的统计分析报表,省准确度超过99.8%,市准确度超过96.8%,数据质量有保障。
接口使用例子(PHP):
<?php
$ip = @file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".$_GET["ip"]);
$ip = json_decode($ip,true);
?>
付笨牛网调用淘宝的代码:
- 最新评论