分享几个完全免费的 IP 信息查询接口

竹清松瘦 目录 工作笔记
0

注:完全免费且无使用限制的接口应该没有,下面这几个算是我见过比较好的了,免费免注册,普通使用免费额度足够了。如果有其他免费接口,欢迎补充,谢谢。

淘宝

# 请求示例(免注册,直接使用 accessKey=alibaba-inc)
https://ip.taobao.com/outGetIpInfo?ip=202.60.126.220&accessKey=alibaba-inc

# 响应示例
{
  "data": {
    "area": "",
    "country": "中国",
    "isp_id": "100026",
    "queryIp": "202.60.126.220",
    "city": "北京",
    "ip": "202.60.126.220",
    "isp": "联通",
    "county": "",
    "region_id": "110000",
    "area_id": "",
    "county_id": null,
    "region": "北京",
    "country_id": "CN",
    "city_id": "110100"
  },
  "msg": "query success",
  "code": 0
}

# 超限后响应示例
{
  "msg": "the request over max qps for user ,the accessKey=alibaba-inc",
  "code": 4
}

沃云

# 请求示例
https://api.vore.top/api/IPdata?ip=202.60.126.220

# 响应示例
{
  "code": 200,
  "msg": "SUCCESS",
  "ipinfo": {
    "type": "ipv4",
    "text": "202.60.126.220",
    "cnip": true
  },
  "ipdata": {
    "info1": "北京市",
    "info2": "",
    "info3": "",
    "isp": "电信"
  },
  "adcode": {
    "o": "北京市 - 电信",
    "p": "北京",
    "c": "北京",
    "n": "北京-北京",
    "r": "北京-北京市区",
    "a": "110100",
    "i": true
  },
  "tips": "接口由VORE-API(https:\\/\\/api.vore.top\\/)免费提供",
  "time": 1761121592
}

太平洋

# 请求示例
http://whois.pconline.com.cn/ipJson.jsp?ip=202.60.126.220&json=true

# 响应示例
{
  "ip": "202.60.126.220",
  "pro": "北京市",
  "proCode": "110000",
  "city": "北京市",
  "cityCode": "110000",
  "region": "",
  "regionCode": "0",
  "addr": "北京市 华电集团",
  "regionNames": "",
  "err": ""
}

http://ip9.com.cn

# 请求示例
https://ip9.com.cn/get?ip=202.60.126.220

# 响应示例
{
  "ret": 200,
  "data": {
    "ip": "202.60.126.220",
    "country": "中国",
    "country_code": "cn",
    "prov": "北京",
    "city": "北京",
    "city_code": "beijing",
    "city_short_code": "bj",
    "area": "",
    "post_code": "100000",
    "area_code": "010",
    "isp": "中国电信",
    "lng": "116.405285",
    "lat": "39.904989",
    "long_ip": 3392962268,
    "big_area": "华北"
  },
  "qt": 0
}

http://ipapi.co

# 请求示例
https://ipapi.co/58.37.111.27/json/

# 响应示例
{
  "ip": "58.37.111.27",
  "network": "58.37.0.0/17",
  "version": "IPv4",
  "city": "Shanghai",
  "region": "Shanghai",
  "region_code": "SH",
  "country": "CN",
  "country_name": "China",
  "country_code": "CN",
  "country_code_iso3": "CHN",
  "country_capital": "Beijing",
  "country_tld": ".cn",
  "continent_code": "AS",
  "in_eu": false,
  "postal": null,
  "latitude": 31.2222,
  "longitude": 121.4581,
  "timezone": "Asia/Shanghai",
  "utc_offset": "+0800",
  "country_calling_code": "+86",
  "currency": "CNY",
  "currency_name": "Yuan Renminbi",
  "languages": "zh-CN,yue,wuu,dta,ug,za",
  "country_area": 9596960,
  "country_population": 1411778724,
  "asn": "AS4812",
  "org": "China Telecom Group"
}

# 超限后响应示例
Too many rapid requests. Please try again in some time or contact us at https://ipapi.co/contact

http://ipapi.xxlb.org

# 请求示例
https://ipapi.xxlb.org/?ip=58.37.111.27

# 响应示例
{
  "ip": "58.37.111.27",
  "as": {
    "number": 4812,
    "name": "China Telecom Group",
    "info": "中国电信"
  },
  "addr": "58.37.111.0/24",
  "country": {
    "code": "CN",
    "name": "中国"
  },
  "registered_country": {
    "code": "CN",
    "name": "中国"
  },
  "regions": [
    "上海市",
    "浦东新区"
  ],
  "regions_short": [
    "上海",
    "浦东新区"
  ],
  "type": "宽带"
}

http://ipinfo.io

# 请求示例
http://ipinfo.io/58.37.111.27/json

# 响应示例
{
  "ip": "58.37.111.27",
  "city": "Shanghai",
  "region": "Shanghai",
  "country": "CN",
  "loc": "31.2222,121.4581",
  "org": "AS4812 China Telecom (Group)",
  "postal": "200000",
  "timezone": "Asia/Shanghai",
  "readme": "https://ipinfo.io/missingauth"
}

本地数据库

可以基于 GeoLite2-City.mmdb 库开发一个本地接口。

# 响应示例
geoip2.models.City(['en'], continent = {
  'code': 'AS',
  'geoname_id': 6255147,
  'names': {
    'de': 'Asien',
    'en': 'Asia',
    'es': 'Asia',
    'fr': 'Asie',
    'ja': 'アジア',
    'pt-BR': 'Ásia',
    'ru': 'Азия',
    'zh-CN': '亚洲'
  }
}, country = {
  'geoname_id': 1814991,
  'iso_code': 'CN',
  'names': {
    'de': 'China',
    'en': 'China',
    'es': 'China',
    'fr': 'Chine',
    'ja': '中国',
    'pt-BR': 'China',
    'ru': 'Китай',
    'zh-CN': '中国'
  }
}, registered_country = {
  'geoname_id': 1814991,
  'iso_code': 'CN',
  'names': {
    'de': 'China',
    'en': 'China',
    'es': 'China',
    'fr': 'Chine',
    'ja': '中国',
    'pt-BR': 'China',
    'ru': 'Китай',
    'zh-CN': '中国'
  }
}, traits = {
  'ip_address': '116.24.64.173',
  'network': '116.24.0.0/17'
}, city = {
  'geoname_id': 1795565,
  'names': {
    'de': 'Shenzhen',
    'en': 'Shenzhen',
    'es': 'Shenzhen',
    'fr': 'Shenzhen',
    'ja': '深セン市',
    'pt-BR': 'Shenzhen',
    'ru': 'Шэньчжэнь',
    'zh-CN': '深圳'
  }
}, location = {
  'accuracy_radius': 50,
  'latitude': 22.5455,
  'longitude': 114.0683,
  'time_zone': 'Asia/Shanghai'
}, subdivisions = [{
  'geoname_id': 1809935,
  'iso_code': 'GD',
  'names': {
    'de': 'Guangdong',
    'en': 'Guangdong',
    'es': 'Guangdong',
    'fr': 'Province de Guangdong',
    'ru': 'Гуандун',
    'zh-CN': '广东'
  }
}])

# 可以使用以下方式提取信息
{
  'ip': ip,
  'country': response.country.name,
  'region': response.subdivisions[0].name if response.subdivisions else None,
  'city': response.city.name,
  'postal': response.postal.code,
  'longitude': response.location.longitude,
  'latitude': response.location.latitude
}
« 上一篇:

发表评论