Skip to content
likaia edited this page Jan 22, 2026 · 2 revisions

IP 归属地解析

解析顺序(从快到慢)

  1. 数据库缓存(ip_geo_cache
  2. 本地库 ip2region(优先要求有城市)
  3. 远程接口 ip-api.com(批量)

本地库能返回城市信息时会优先采用;若城市缺失或未知,则调用远端补全。

解析流程

  • 日志解析时,将 IP 写入 ip_geo_pending 队列。
  • 定时任务批量处理 pending(默认每次 500 个)。
  • 写入 ip_geo_cache 并回填日志表中的 location 维度。
  • 缓存数量超过 system.ipGeoCacheLimit 时会清理最早记录。

解析状态与进度

接口: GET /api/status

  • ip_geo_parsing: 是否正在解析
  • ip_geo_pending: 是否存在待解析队列
  • ip_geo_progress: 进度(0~1)
  • ip_geo_estimated_remaining_seconds: 预计剩余秒数

结果展示

  • 内网 IP: 国内显示“内网”,全球显示“本地网络”。
  • 无法解析: 显示“未知”。
  • 待解析期间: 可能显示“待解析”或“未知”。

常见问题

  • 远端接口受网络影响,可能延迟或失败。
  • IPv6 会直接走远端解析。
  • 若想减少远端调用,请确保本地库可覆盖更多 IP 范围。

Clone this wiki locally