MCPcopy Index your code
hub / github.com/deanxv/go-geoip

github.com/deanxv/go-geoip @v1.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.1.0 ↗ · + Follow
96 symbols 212 edges 27 files 14 documented · 15% updated 12mo agov1.1.0 · 2025-06-25★ 602 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

go-geoip

基于MaxMind的GeoIP库的IP信息查询服务

✨演示站

✨演示接口

✨演示接口文档

功能

  • [x] 获取本机或指定IP所在的IP段ASN城市经度纬度子区域省市区注册国家
  • [x] 定期(每周)更新GeoLite2库。
  • [x] 支持自定义City.mmdb远程地址。

接口文档:

http://<ip>:<port>/swagger/index.html

示例:

如何使用

  1. 部署后访问http://<ip>:<port>/swagger/index.html查看接口文档。[可选]
  2. 使用/ip接口查询IP信息。例如:http://<ip>:<port>/ip
  3. 使用/ip/{ip}接口查询指定IP信息。例如:http://<ip>:<port>/ip/8.8.8.8

基于 Docker-Compose(All In One) 进行部署

docker-compose pull && docker-compose up -d

docker-compose.yml

version: '3.4'

services:
  go-geoip:
    image: deanxv/go-geoip:latest
    container_name: go-geoip
    restart: always
    ports:
      - "7099:7099"
    volumes:
      - ./data:/app/go-geoip/data
    environment:
      - API_SECRET=123456  # [可选]修改此行为请求头校验的值(前后端统一)
      - TZ=Asia/Shanghai

基于 Docker 进行部署

docker run --name go-geoip -d --restart always \
-p 7099:7099 \
-v $(pwd)/data:/app/go-geoip/data \
-e API_SECRET="123456" \
-e TZ=Asia/Shanghai \
deanxv/go-geoip

其中API_SECRET修改为自己的。

如果上面的镜像无法拉取,可以尝试使用 GitHub 的 Docker 镜像,将上面的deanxv/go-geoip替换为ghcr.io/deanxv/go-geoip即可。

部署到第三方平台

部署到 Zeabur

Zeabur 的服务器在国外,自动解决了网络的问题,~~同时免费的额度也足够个人使用~~

点击一键部署:

Deploy on Zeabur

一键部署后 API_SECRET变量也需要替换!

或手动部署:

  1. 首先 fork 一份代码。
  2. 进入 Zeabur,使用github登录,进入控制台。
  3. 在 Service -> Add Service,选择 Git(第一次使用需要先授权),选择你 fork 的仓库。
  4. Deploy 会自动开始,先取消。
  5. 添加环境变量

PORT=7099 [可选]服务端口 API_SECRET=123456 [可选]接口密钥-修改此行为请求头校验的值(多个请以,分隔) TZ=Asia/Shanghai

保存。

  1. 选择 Redeploy。

部署到 Render

Render 提供免费额度,绑卡后可以进一步提升额度

Render 可以直接部署 docker 镜像,不需要 fork 仓库:Render

配置

环境变量

  1. PORT=7099 [可选]服务端口
  2. API_SECRET=123456 [可选]接口密钥-修改此行为请求头校验的值(多个请以,分隔)(请求header中增加 Authorization:Bearer 123456)
  3. CITY_DB_REMOTE_URL=https://xxx.com/GeoIP2-City.mmdb [可选]city.mmdb远程地址
  4. ASN_DB_REMOTE_URL=https://xxx.com/GeoLite2-ASN.mmdb [可选]ASN.mmdb远程地址
  5. CN_DB_REMOTE_URL=https://xxx.com/GeoCN.mmdb [可选]CN.mmdb远程地址

Core symbols most depended-on inside this repo

logHelper
called by 4
common/loggger/logger.go
downloadAndSave
called by 3
main.go
SendResponse
called by 3
common/send-res.go
loadDatabases
called by 2
main.go
handleIpInfoResponse
called by 2
controller/main.go
getCountry
called by 2
controller/main.go
GenRequestID
called by 2
common/helper/helper.go
setGinMode
called by 1
main.go

Shape

Function 82
Struct 11
Method 3

Languages

Go100%

Modules by API surface

main.go14 symbols
common/loggger/logger.go13 symbols
common/helper/helper.go12 symbols
controller/main.go11 symbols
model/main.go8 symbols
common/random/main.go6 symbols
common/rate-limit.go4 symbols
common/env/helper.go4 symbols
middleware/rate-limit.go3 symbols
middleware/auth.go3 symbols
common/snowflakeid.go3 symbols
common/response.go2 symbols

For agents

$ claude mcp add go-geoip \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page