geminishkv/geoip-tool
GitHub: geminishkv/geoip-tool
基于 Bash 和免费 API 的轻量级 GeoIP 查询工具,支持终端批量查询、HTTP 方法探测,并可集成 Burp Suite 实现请求地理位置数据增强。
Stars: 4 | Forks: 1








你好 :wave:, 本项目是一个用于在终端进行 GeoIP‑lookup 并作为 BurpSuit 插件进行数据丰富(enrichment)的迷你工具。目前这还是一个简陋的实现,后续会继续完善。它通过 `curl + jq` 和免费的 **ip-api.com** API(无需密钥)工作,同时也支持 ipapi-co 提供商。 ## **功能** * 基于 IP/域名或您当前 IP 进行 GeoIP lookup(美观格式)(包括 ipapi-co) * 用于流水线(pipeline)的 JSON 模式 * 基于文件中目标列表的批处理模式 * `http` 检查模式:尝试 `GET/ POST/ PUT/ DELETE/ HEAD/ OPTIONS/ TRACE` 方法。如果目标没有服务,或者 80 端口关闭,curl 将返回连接错误 * 在 `~/.cache/geoip-tool` 中缓存响应(减少对 API 的请求次数): * 通过扩展集成 Burp Suite:请求的 `GeoIP` 标签页,数据通过本地 `geoip json` 命令获取 * 记录 X-Rl/X-Ttl 头(可用于追踪限制) * 节流(Throttling) * stderr 中的 `_ipapi_request_raw` X-Rl 和 X-Ttl 头(用于 Burp 中的限制控制): ``` remaining=$(printf '%s\n' "$headers" | awk 'BEGIN{RS="\r\n"} /^X-Rl:/ {print $2}' || true) ttl=$(printf '%s\n' "$headers" | awk 'BEGIN{RS="\r\n"} /^X-Ttl:/ {print $2}' || true) if [[ -n "$remaining" || -n "$ttl" ]]; then >&2 echo "[ip-api] X-Rl=${remaining:-?} X-Ttl=${ttl:-?}" fi ``` ## 资料 ### 主要命令列表  ### http 命令列表  ### http 示例  ## **教程** ### 预配置 #### GHCR ``` docker run --rm ghcr.io/geminishkv/geoip-tool:v0.1.6 --help docker run --rm ghcr.io/geminishkv/geoip-tool:v0.1.6 lookup 8.8.8.8 docker run --rm -e GEOIP_PROVIDER=ipapi-co ghcr.io/geminishkv/geoip-tool:v0.1.6 json 1.1.1.1 ``` #### GitHub Release ``` $ curl -L https://github.com/geminishkv/geoip-tool/archive/refs/tags/v0.1.6.tar.gz -o geoip-tool-v0.1.6.tar.gz $ tar xzf geoip-tool-v0.1.6.tar.gz $ cd geoip-tool-0.1.6 $ sudo make install ``` #### 从 repo ``` $ git clone https://github.com/geminishkv/geoip-tool.git $ cd geoip-tool $ sudo make install ``` ### 测试 ``` $ bash <(curl -fsSL https://raw.githubusercontent.com/geminishkv/geoip-tool/main/bin/geoip) lookup 8.8.8.8 ``` ### 手册 ``` $ geoip json 1.1.1.1 | jq '.' # для JSON формата $ geoip file examples/ips.txt # на таргет $ geoip --provider ipapi-co json
$ geoip http example.com
$ geoip http example.com --path /admin
$ geoip http example.com --https --follow
$ geoip http example.com --auto --aggressive
$ geoip http example.com --methods GET,HEAD,OPTIONS,TRACE
```
## **仓库结构**
```
.
├── assets
│ ├── exmpl.jpg
│ ├── help.jpg
│ ├── http_help.jpg
│ └── logotypemd.jpg
├── bin
│ └── geoip
├── CONTRIBUTING.md
├── Dockerfile
├── examples
│ ├── burp-extension
│ │ └── GeoIpTab.py
│ └── ips.txt
├── lib
│ ├── geoip_core.sh
│ ├── geoip_http.sh
│ └── geoip_lookup.sh
├── LICENSE.md
├── Makefile
├── NOTICE.md
├── README.md
└── SECURITY.md
```
## 限制与法律信息
本工具使用免费的 JSON-API [ip-api.com](http://ip-api.com):
- 每个IP每分钟最多 **45 次请求**;超出后可能会返回 HTTP 429 并被暂时封锁
- 仅支持 HTTP(不支持 HTTPS)
- 仅供 **非商业用途**,请参阅 [服务条款 / 隐私政策](http://ip-api.com/docs/legal)
**您必须:**
- 遵守请求限制(使用 `sleep` 和 `~/.cache/geoip-tool` 缓存)
- 不得在商业产品/服务中使用该服务,除非升级到 Pro 套餐
- 使用前查阅 [ip-api.com](http://ip-api.com) 网站上的最新条款
**geoip-tool** 的作者不对因违反 [ip-api.com](http://ip-api.com) 条款或当地法律法规而导致的任何后果承担责任。
## **参考**
* [ip-api JSON API 文档](https://ip-api.com/docs/api:json)
* [频率限制头 X-Rl / X-Ttl](https://ip-api.com/docs/unban)
* [ip-api 服务条款 / 隐私政策(免费使用条款)](https://ip-api.com/docs/legal)
Copyright (c) 2026 Elijah S Shmakov

你好 :wave:, 本项目是一个用于在终端进行 GeoIP‑lookup 并作为 BurpSuit 插件进行数据丰富(enrichment)的迷你工具。目前这还是一个简陋的实现,后续会继续完善。它通过 `curl + jq` 和免费的 **ip-api.com** API(无需密钥)工作,同时也支持 ipapi-co 提供商。 ## **功能** * 基于 IP/域名或您当前 IP 进行 GeoIP lookup(美观格式)(包括 ipapi-co) * 用于流水线(pipeline)的 JSON 模式 * 基于文件中目标列表的批处理模式 * `http` 检查模式:尝试 `GET/ POST/ PUT/ DELETE/ HEAD/ OPTIONS/ TRACE` 方法。如果目标没有服务,或者 80 端口关闭,curl 将返回连接错误 * 在 `~/.cache/geoip-tool` 中缓存响应(减少对 API 的请求次数): * 通过扩展集成 Burp Suite:请求的 `GeoIP` 标签页,数据通过本地 `geoip json` 命令获取 * 记录 X-Rl/X-Ttl 头(可用于追踪限制) * 节流(Throttling) * stderr 中的 `_ipapi_request_raw` X-Rl 和 X-Ttl 头(用于 Burp 中的限制控制): ``` remaining=$(printf '%s\n' "$headers" | awk 'BEGIN{RS="\r\n"} /^X-Rl:/ {print $2}' || true) ttl=$(printf '%s\n' "$headers" | awk 'BEGIN{RS="\r\n"} /^X-Ttl:/ {print $2}' || true) if [[ -n "$remaining" || -n "$ttl" ]]; then >&2 echo "[ip-api] X-Rl=${remaining:-?} X-Ttl=${ttl:-?}" fi ``` ## 资料 ### 主要命令列表  ### http 命令列表  ### http 示例  ## **教程** ### 预配置 #### GHCR ``` docker run --rm ghcr.io/geminishkv/geoip-tool:v0.1.6 --help docker run --rm ghcr.io/geminishkv/geoip-tool:v0.1.6 lookup 8.8.8.8 docker run --rm -e GEOIP_PROVIDER=ipapi-co ghcr.io/geminishkv/geoip-tool:v0.1.6 json 1.1.1.1 ``` #### GitHub Release ``` $ curl -L https://github.com/geminishkv/geoip-tool/archive/refs/tags/v0.1.6.tar.gz -o geoip-tool-v0.1.6.tar.gz $ tar xzf geoip-tool-v0.1.6.tar.gz $ cd geoip-tool-0.1.6 $ sudo make install ``` #### 从 repo ``` $ git clone https://github.com/geminishkv/geoip-tool.git $ cd geoip-tool $ sudo make install ``` ### 测试 ``` $ bash <(curl -fsSL https://raw.githubusercontent.com/geminishkv/geoip-tool/main/bin/geoip) lookup 8.8.8.8 ``` ### 手册 ``` $ geoip json 1.1.1.1 | jq '.' # для JSON формата $ geoip file examples/ips.txt # на таргет $ geoip --provider ipapi-co json
标签:API 调用, Burp Suite 插件, Curl, ESC4, GeoIP查询, GitHub, HTTP 检测, IP定位, JSON 处理, Linux 工具, OSINT, 侦察工具, 域名查询, 应用安全, 批量处理, 数据丰富化, 网络安全, 请求拦截, 逆向工具, 隐私保护