爱意满满的作品展示区。
hzz2

写了一个极简且免费的 IP 地址查询服务

  •  1
     
  •   hzz2 · May 24 · 1433 views

    GOIP - IP 地址查询服务

    一个基于 Merged-IP-Data 数据库,极简的 IP 地址查询服务,支持并发以及多语言、简化输出格式。

    github 地址

    功能特性

    • 完全免费,下载即使用
    • 毫秒级响应,准确度高
    • 两种输出格式:完整版 / 简化版
    • 多语言支持:简体中文、英语、德语、法语、日语等
    • 支持多 IP 并发查询(逗号分隔)
    • 支持下载/更新 IP 数据库
    • 下载进度条显示
    • 提供免费服务 https://ip.hzzio.tophttps://ip.hzzio.top/s(请勿滥用)

    使用步骤

    1. 下载编译好的文件启动

    2. 下载 IP 数据库

    首次运行服务时,如果检测到本地没有 IP 数据库,会自动下载默认数据库:

    ./goip.exe
    

    手动下载/更新方式

    方式一:下载默认数据库

    ./goip.exe -d 1
    

    方式二:下载指定 URL 的数据库

    ./goip.exe -d https://example.com/custom.mmdb
    

    下载完成后会自动退出,数据库文件保存为 Merged-IP.mmdb

    3. 启动服务

    默认监听端口 8066 ,可通过 -p 参数指定端口:

    ./goip.exe -p 8080
    

    4. API 接口

    完整版查询(默认)

    路由/

    参数

    • ip:要查询的 IP 地址(多个用逗号分隔)

    示例

    # 查询单个 IP
    curl "http://127.0.0.1:8066/?ip=8.8.8.8"
    
    # 批量查询
    curl "http://127.0.0.1:8066/?ip=8.8.8.8,1.1.1.1,114.114.114.114"
    

    响应示例

    [
      {
        "ip": "8.8.8.8",
        "data": {
          "city": {...},
          "continent": {...},
          "country": {...},
          "location": {...},
          "subdivisions": [...],
          "asn": {...}
        }
      }
    ]
    

    简化版查询

    路由/s/s/{lang}

    参数

    • ip:要查询的 IP 地址(多个用逗号分隔)
    • {lang}:语言代码(可选,默认为 zh-CN

    支持的语言

    语言代码 说明
    zh-CN 简体中文(默认)
    en 英语
    de 德语
    es 西班牙语
    fr 法语
    ja 日语
    pt-BR 巴西葡萄牙语
    ru 俄语

    示例

    # 默认简体中文
    curl "http://127.0.0.1:8066/s?ip=188.253.117.144"
    
    # 英文输出
    curl "http://127.0.0.1:8066/s/en?ip=8.8.8.8"
    
    # 日语输出
    curl "http://127.0.0.1:8066/s/ja?ip=1.1.1.1"
    
    # 批量查询
    curl "http://127.0.0.1:8066/s/zh-CN?ip=8.8.8.8,1.1.1.1,114.114.114.114"
    

    响应示例

    [
      {
        "organization": "Google LLC",
        "city": "Mountain View",
        "isp": "google.com",
        "asn_organization": "Google LLC",
        "latitude": 37.40599,
        "asn": 15169,
        "continent_code": "NA",
        "country": "美国",
        "timezone": "America/Los_Angeles",
        "country_code": "US",
        "longitude": -122.078514,
        "region": "加利福尼亚州",
        "ip": "8.8.8.8",
        "region_code": "CA"
      }
    ]
    

    简化版字段说明

    字段 说明
    ip IP 地址
    asn AS 号码
    asn_organization AS 组织名称
    organization 组织名称(同 asn_organization )
    isp ISP 域名
    continent_code 大洲代码
    country 国家名称
    country_code 国家代码
    region 地区/省份
    region_code 地区代码
    city 城市名称
    latitude 纬度
    longitude 经度
    timezone 时区
    7 replies    2026-05-25 20:43:01 +08:00
    simo
        1
    simo  
       May 24
    不错啊
    那个 merge ip 库的项目是个宝藏
    hzz2
        2
    hzz2  
    OP
       May 24
    @simo #1 没错 作者也在 V 站
    nc
        3
    nc  
       May 25   ❤️ 1
    非常适合替换已有项目使用的外部 IP 接口
    liuxyon
        4
    liuxyon  
       May 25
    为什么没有 ipv6
    hzz2
        5
    hzz2  
    OP
       May 25
    @liuxyon #4 可以查 直接把 ipv6 地址代入 这个没有主动获取 可以试试 3 楼的服务 https://ip.nc.gy/zh-Hans
    isAK47
        6
    isAK47  
       May 25 via Android
    IP 不准确,A 城市的 IP 显示 B 城市。
    nc
        7
    nc  
       May 25   ❤️ 1
    @isAK47 城市级不准很正常,这个库用了纯真,但只在 GeoLite 没数据时才使用,而不是完全覆盖,因为纯真只有中文结果,为了避免中英结果不一致才这么做。

    查中国 IP 直接用美团的 API ,最准没有之一,要离线库的话就用纯真。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   933 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 71ms · UTC 21:33 · PVG 05:33 · LAX 14:33 · JFK 17:33
    ♥ Do have faith in what you're doing.