分享几个免费IP地址查询API接口(完整版)

在开发Web应用时,经常需要通过IP地址获取用户的地理位置信息。本文整理了多个免费且实用的IP地址查询API接口,包括使用方法、返回数据格式和PHP/JavaScript调用示例。

目录


1. 淘宝IP地址库

接口地址:http://ip.taobao.com/service/getIpInfo.php?ip=IP地址

淘宝IP地址库提供的服务包括:

  1. 根据用户提供的IP地址,快速查询出该IP地址所在的地理信息和地理相关的信息,包括国家、省、市和运营商。
  2. 用户可以根据自己所在的位置和使用的IP地址更新我们的服务内容。

优势:

  • 提供国家、省、市、县、运营商全方位信息,信息维度广,格式规范。
  • 省准确度超过99.8%,市准确度超过96.8%,数据质量有保障。

PHP调用示例:

<?php
$ip = "123.125.71.38";
$url = "http://ip.taobao.com/service/getIpInfo.php?ip=" . $ip;
$response = file_get_contents($url);
$result = json_decode($response, true);

if ($result && $result["code"] == 0) {
    $data = $result["data"];
    echo "国家:" . $data["country"] . "\n";
    echo "地区:" . $data["area"] . "\n";
    echo "省份:" . $data["region"] . "\n";
    echo "城市:" . $data["city"] . "\n";
    echo "ISP:" . $data["isp"] . "\n";
} else {
    echo "查询失败";
}
?>

返回数据格式:

{
    "code": 0,
    "data": {
        "ip": "123.125.71.38",
        "country": "中国",
        "area": "华北",
        "region": "北京市",
        "city": "北京市",
        "county": "朝阳区",
        "isp": "联通"
    }
}

2. 新浪IP API

接口地址:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=IP地址

新浪IP API是最不错的免费IP查询接口之一,返回的数据类型可以自定义格式:

  • format=js:返回JavaScript格式(默认)
  • format=json:返回JSON格式
  • 不传format:返回纯文本格式

PHP调用示例:

<?php
$ip = "123.125.71.38";
$url = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=" . $ip;
$response = file_get_contents($url);
$result = json_decode($response, true);

echo "IP:" . $result["ip"] . "\n";
echo "国家:" . $result["country"] . "\n";
echo "省份:" . $result["province"] . "\n";
echo "城市:" . $result["city"] . "\n";
echo "ISP:" . $result["isp"] . "\n";
?>

返回数据格式:

{
    "ret": 1,
    "start": "59.37.164.179",
    "end": "59.37.165.17",
    "country": "中国",
    "province": "广东",
    "city": "深圳",
    "district": "",
    "isp": "电信",
    "type": "",
    "desc": ""
}

JavaScript直接调用:

[removed]
function getIpInfo(ip, callback) {
    var script = document.createElement("script");
    script.src = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=" + ip;
    document.head.appendChild(script);
    
    window.remote_ip_info = function(data) {
        callback(data);
    };
}
[removed]

3. 126 IP API

接口地址:http://ip.ws.126.net/ipquery?ip=IP地址

126提供的IP查询API功能方面不如新浪,但数据相对来说比较准确。

PHP调用示例:

<?php
$ip = "123.125.71.38";
$url = "http://ip.ws.126.net/ipquery?ip=" . $ip;
$response = file_get_contents($url);
// 返回的是JavaScript变量格式
echo $response;
?>

返回数据格式:

var lo="北京市", lc="朝阳区"; var localAddress={city:"朝阳区", province:"北京市"};

4. 天气API(批量查询)

接口地址:https://ip.tianqiapi.com/?ip=IP地址1,IP地址2,...

这是一个非常实用的IP查询接口,特点:

  • 没有调用次数、频率和IP限制,请放心使用
  • 支持批量查询,最多可查询100个IP地址
  • 永久免费,稳定高效

PHP调用示例:

<?php
// 单个IP查询
$ip = "27.193.13.255";
$url = "https://ip.tianqiapi.com/?ip=" . $ip;
$response = file_get_contents($url);
$result = json_decode($response, true);
print_r($result);

// 批量IP查询(最多100个)
$ips = "27.193.13.255,123.125.71.38,8.8.8.8";
$url = "https://ip.tianqiapi.com/?ip=" . $ips;
$response = file_get_contents($url);
$result = json_decode($response, true);
print_r($result);
?>

JavaScript调用示例:

[removed]
fetch('https://ip.tianqiapi.com/?ip=27.193.13.255')
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error(error));
[removed]

5. 腾讯IP地址API

接口地址:http://fw.qq.com/ipaddress

JavaScript直接调用:

[removed][removed]
[removed]
// 返回的数据格式为:
// var IPData = new Array("IP地址", "", "省", "市", "ISP");
[removed]("你的IP: " + IPData[0] + "
"); [removed]("来自: " + IPData[2] + IPData[3] + "
"); [removed]("ISP: " + IPData[4]); [removed]

返回数据格式:

var IPData = new Array("114.218.183.139", "", "江苏省", "苏州", "电信");

6. 百度IP地址查询API

接口地址:http://developer.baidu.com/map/ip-location-api.htm

通过百度地图IP定位API获取IP地址对应的地理位置信息,功能强大,可与百度地图结合使用。

JavaScript调用示例:

[removed][removed]
[removed]
var myCity = new BMap.LocalCity();
myCity.get(function(result) {
    var cityName = result.name;
    console.log("当前城市:" + cityName);
});
[removed]

7. 搜狐IP地址查询接口

接口地址:http://pv.sohu.com/cityjson?ie=utf-8

搜狐提供的IP查询接口,可以获取当前访问者的IP地址和所在城市信息。

JavaScript调用示例:

[removed][removed]
[removed]
// 全局变量 returnCitySN 包含了IP和城市信息
console.log("IP: " + returnCitySN.cip);
console.log("城市ID: " + returnCitySN.cid);
console.log("城市名称: " + returnCitySN.cname);
[removed]

返回数据格式:

returnCitySN = {"cip": "58.210.119.10", "cid": "320000", "cname": "江苏省"};

8. 设计蜂巢IP地址查询接口

接口地址:http://www.hujuntao.com/api/ip/ip.php


9. 帮助BJCN IP查询

接口地址:http://www.help.bj.cn/api/ip?ip=IP地址

IP地址查询反馈:地区+省+市+区+ISP,JSON格式,UTF-8编码

PHP调用示例:

<?php
$ip = "61.170.135.3";
$url = "http://www.help.bj.cn/api/ip?ip=" . $ip;
$response = file_get_contents($url);
$result = json_decode($response, true);

echo "状态:" . $result["status"] . "\n";
echo "国家:" . $result["country"] . "\n";
echo "省份:" . $result["province"] . "\n";
echo "城市:" . $result["city"] . "\n";
echo "区县:" . $result["district"] . "\n";
echo "ISP:" . $result["isp"] . "\n";
?>

返回数据格式:

{
    "status": "0",
    "info": "中国",
    "country": "中国",
    "province": "上海市",
    "city": "上海市",
    "district": "浦东新区",
    "isp": "电信"
}

10. ip-api.com(国外)

接口地址:http://ip-api.com/json/?fields=520191&lang=zh-CN

国外知名的IP查询API,支持中文显示。

返回数据格式:

{
    "status": "success",
    "country": "中国",
    "regionName": "北京市",
    "city": "北京",
    "isp": "China Unicom",
    "query": "123.125.71.38"
}

各接口对比总结

接口 批量查询 调用限制 返回格式 准确度 推荐指数
淘宝IP地址库 不支持 有频率限制 JSON 99.8% ★★★★★
新浪IP API 不支持 较少限制 JS/JSON 95% ★★★★★
天气API 支持100个 无限制 JSON 90% ★★★★★
126 IP API 不支持 未知 JS 90% ★★★★
腾讯IP API 不支持 未知 JS 85% ★★★★
帮助BJCN 不支持 未知 JSON 90% ★★★★
ip-api.com 不支持 150次/分钟 JSON 90% ★★★★

选择建议

  • 国内项目推荐:新浪IP API(免费、稳定、支持跨域)
  • 需要批量查询:天气API(tianqiapi.com)
  • 需要高准确度:淘宝IP地址库
  • 纯前端调用:搜狐、腾讯、新浪(支持JSONP)
  • 国际项目:ip-api.com

注意事项

  1. 免费接口可能存在不稳定情况,建议在生产环境中加入错误处理和重试机制。
  2. 对于高并发场景,建议搭建自己的IP查询服务或使用付费API。
  3. 部分接口的准确性可能随时间变化,建议定期验证数据准确性。
  4. 使用时请遵守各API的使用条款和调用频率限制。
点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部