From 2b84db28ba9eab901be4b9ea61d197ecd8ddb8d5 Mon Sep 17 00:00:00 2001 From: Feng_Qi Date: Tue, 6 Jun 2023 14:34:37 +0800 Subject: [PATCH] update readme --- README.md | 29 +++++++++++++++++++++++++++-- control | 2 +- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 09e575a..1072af0 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Open-GeoIP: 简单且高性能的 IP 地址地理信息查询服务 - [编译打包](#编译打包) - [定制页面](#定制页面) - [配置说明](#配置说明) - - [通过csv导入内部数据库](#通过csv导入内部数据库) + - [内部 IP 地理数据库](#内部-ip-地理数据库) - [限流方案](#限流方案) - [高可用与扩展性](#高可用与扩展性) - [API](#api) @@ -160,10 +160,35 @@ chmod +x control | http.trustProxy | array | 被信任的代理的IP地址的数组,当服务被发布在反向代理后时必须正确配置,否则无法正确获取到 xff 的地址。 | | http.cors | array | 允许跨域访问的域名列表,配置内的域名可以跨域访问 `/myip` 和 `/myip/format` 接口 | | http.x-api-key | string | 访问 openapi 接口所需的 API 密钥 | | -## 通过csv导入内部数据库 +## 内部 IP 地理数据库 + +Open-GeoIP 允许以导入的方式,构建企业内部自己的 IP 地理数据库,以便于查询内部 IP 地址的物理位置。 + +导入的格式是 `csv`,内容如下所示,项目中已经存在一个 `internal.csv` 的示例文件,可以参考。 + +| continent | country | province | city | district | isp | areaCode | countryCode | countryEnglish | longitude | latitude | ip_subnet | +| --------- | ------- | -------- | ---- | -------- | --- | -------- | ----------- | -------------- | --------- | -------- | --------- | +| | | | | 保留 | 回环地址 | | | | | | 127.0.0.0/8 | +| 亚洲 | 中国 | 上海 | 上海 | 开源教育 | 企业内网 | 310000 | CN | China ||| 10.0.0.0/8 | +| 亚洲 | 中国 | 上海 | 上海 | 开源教育 | 企业内网 ||| CN || China ||| 192.168.0.0/16 | +| 亚洲 ||| 中国 || 上海 || 上海 || 开源教育 || 企业内网 ||| 310000 || CN || China ||| 172.16.0.0/12 | +| 亚洲 ||| 中国 || 上海 || 上海 || 开源教育 || 企业内网 ||| 310000 || CN || China |||| fd00::/8 | + + +在启动 Open-GeoIP 之前,执行 `-csv` 命令即可导入内部数据库,此时默认会生成一个 `internal.mmdb` 文件。 ``` ./open-geoip -csv internal.csv ``` +在配置文件中,修改 `internal.mmdb` 的相关配置,将其开启即可。 + +```json + "internaldb": { + "source": "maxmind", + "enabled": true, + "db": "internal.mmdb" + } +``` + ## 限流方案 Open-GeoIP 通过 redis 记录每个IP地址的访问次数,当超过阈值时,对该IP进行限制访问。支持分钟,小时,天 三种颗粒的计数策略,可以通过配置文件中的 ratelimit 的部分进行配置,以下示例表示开启了限流策略,并限制了每分钟最多访问 100 次,每小时最多访问 1000 次,每天最多访问 10000 次。 diff --git a/control b/control index 2c452da..dab1a11 100755 --- a/control +++ b/control @@ -77,7 +77,7 @@ function pack() { build git log -1 --pretty=%h > gitversion version=`./$app -v` - file_list="assets templates control cfg.json $app" + file_list="assets templates control cfg.json cfg.json.example internal.csv city.free.ipdb $app" echo "...tar $app-$version.tar.gz <= $file_list" tar zcf $app-$version.tar.gz gitversion $file_list }