# ip4regionMaker **Repository Path**: RickieL/ip4regionMaker ## Basic Information - **Project Name**: ip4regionMaker - **Description**: ip4region.db的生成工具, 生成后, 可以提供给 https://gitee.com/RickieL/ip4region 和 https://gitee.com/RickieL/ip4regionServer 使用. - **Primary Language**: Go - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2021-01-08 - **Last Updated**: 2021-02-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ip4regionMaker ## 一. 介绍 `ip4region.db`的生成工具, 生成后, 可以提供给 `https://gitee.com/RickieL/ip4region` 和 `https://gitee.com/RickieL/ip4regionServer` 使用. ## 二. 安装教程 ### 方法1 直接在[release页面](https://gitee.com/RickieL/ip4regionMaker/releases/)根据不同的操作系统下载对应版本 ### 方法2 ```go go get gitee.com/RickieL/ip4regionMaker.git ``` 此时会在`$GOPATH/bin`目录下有个 ip4regionMaker 的本地执行文件. ### 方法3 ```shell git clone https://gitee.com/RickieL/ip4regionMaker.git cd ip4regionMaker go build ``` ## 三. 使用说明 ```shell ./ip4regionMaker -s ip.merge.txt ``` 此时会生成一个 `ip4region.db` 的二进制文件 ## 四. ip.merge.txt ### 获取方法 ```shell wget https://gitee.com/RickieL/ip4regionMaker/raw/master/ip.merge.txt ``` ### ip.merge.txt 文件的格式说明 ```text 0.0.0.0|0.255.255.255|0|0|0|内网IP|内网IP 1.0.0.0|1.0.0.255|澳大利亚|0|0|0|0 1.0.1.0|1.0.3.255|中国|0|福建省|福州市|电信 ``` `ip段起始|ip段结束|国家|地区|省份|城市|运营商` `0`表示该字段为空 ### 其他说明 当前文件来自 `https://gitee.com/lionsoul/ip2region/tree/master/data` , 我修改了`121.4.0.0|121.5.255.255`的数据. 本工具参考了 `https://gitee.com/lionsoul/ip2region` 的实现,或者说,根据大佬提供的方法进行的go语言生成db文件的实现,但是和他的实现方式又做了稍稍变更。至少header block的长度我调整到16k了,理论可以存储2048个ip index partion, 当前按计算来说,有2003个index partion, 所以必须扩展header block到16k。(原来的8k,只能存储1024个index partion)