Sign inSign up

kcilnk/go-cidr-api

By kcilnk

Updated 2 months ago

Golang编写的CIDR API服务

Image
0

10K+

kcilnk/go-cidr-api repository overview

go-cidr-api

基于 Go 的中国省市 CIDR 查询 API。镜像内置 china_city_cidrs.compact.json 数据文件,启动后提供 HTTP JSON API,可按省、市查询 IPv4 / IPv6 CIDR。

快速开始

默认服务端口为 30662

docker run --rm \
  -p 30662:30662 \
  kcilnk/go-cidr-api:latest

健康检查:

curl http://127.0.0.1:30662/healthz

Docker Compose

保存为 docker-compose.yml

services:
  go-cidr-api:
    image: kcilnk/go-cidr-api:latest
    container_name: go-cidr-api
    restart: unless-stopped
    ports:
      - "30662:30662"
    environment:
      RUN_MODE: http
      ADDR: ":30662"
      DATA_FILE: /app/china_city_cidrs.compact.json

启动:

docker compose up -d

查看日志:

docker compose logs -f go-cidr-api

停止:

docker compose down

常用接口

查询省列表:

curl http://127.0.0.1:30662/api/v1/provinces

查询城市列表:

curl "http://127.0.0.1:30662/api/v1/provinces/广东/cities"

按省查询 CIDR:

curl "http://127.0.0.1:30662/api/v1/provinces/广东/cidrs?ip_version=4"

按省、市查询 CIDR:

curl "http://127.0.0.1:30662/api/v1/provinces/广东/cities/深圳/cidrs?ip_version=4"

也可以使用查询参数:

curl "http://127.0.0.1:30662/api/v1/cidrs?province=广东&city=深圳&ip_version=4"

ip_version 支持:

  • 4
  • 6
  • 不传或 all,返回 IPv4 和 IPv6 分组

环境变量

变量默认值说明
RUN_MODEhttp运行模式,Docker 场景使用 http
ADDR:30662HTTP 监听地址
DATA_FILE/app/china_city_cidrs.compact.jsonCIDR 数据文件路径

镜像标签

推荐生产环境固定版本号:

image: kcilnk/go-cidr-api:0.1.0

如果希望始终使用最新版本:

image: kcilnk/go-cidr-api:latest

镜像发布时会同时提供多架构 manifest,支持:

  • linux/amd64
  • linux/arm64

Tag summary

Content type

Image

Digest

sha256:da6212270

Size

4.8 MB

Last updated

2 months ago

docker pull kcilnk/go-cidr-api