# ip2location **Repository Path**: chenhonghua/ip2location ## Basic Information - **Project Name**: ip2location - **Description**: 提供国内的ip归属地查询服务。 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-12 - **Last Updated**: 2026-04-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ip2location #### 介绍 ip2location 是一个提供国内IP归属地(支持市级)查询服务的工具,基于 ip2region 数据库实现。 - 支持 API 接口查询 - 支持命令行查询 - 提供精确到市级的地理位置信息 - 包含 ISP 运营商信息 #### 软件架构 **项目结构**: - `cmd/`:命令行工具和 API 服务入口 - `internal/`:内部实现 - `db/`:数据库相关,包含 ip2region 数据库文件 - `types/`:数据结构定义 - `plugin/`:插件目录 **核心组件**: 1. **数据库**:使用 ip2region_v4.xdb 作为 IP 地址库 2. **API 服务**:基于 Gin 框架提供 HTTP 接口 3. **命令行工具**:基于 Cobra 框架实现 **技术栈**: - Go 语言 - Gin 框架(Web API) - Cobra 框架(命令行) - ip2region 数据库 #### 安装教程 **前提条件**: - Go 1.24 或更高版本 **安装步骤**: 1. 克隆仓库 ```bash git clone https://gitee.com/chenhonghua/ip2location.git cd ip2location ``` 2. 构建项目 ```bash make build ``` 3. 运行服务 ```bash ./output/ip2location api ``` **Docker 部署**: ```bash docker-compose up -d ``` #### 使用说明 **API 接口**: - **地址**:`http://localhost:59876/search` - **方法**:GET - **参数**:`ip` - 要查询的 IP 地址 - **返回格式**:JSON **示例**: ```bash curl http://localhost:59876/search?ip=127.0.0.1 ``` **返回示例**: ```json { "Country": "中国", "Province": "北京", "City": "北京", "ISP": "本地连接" } ``` **命令行使用**: ```bash ./output/ip2location 127.0.0.1 ``` **健康检查**: ```bash curl http://localhost:59876/healthz ``` #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 许可证 本项目使用 MIT 许可证,详情请查看 LICENSE 文件。