Салют 👋,
Этот проект является мини‑утилитой для GeoIP‑lookup из терминала и обогащения данных как плагина для BurpSuit, на сейчас это пока костыльный вариант, который будут допиливаться далее. Работает через curl + jq и бесплатный API ip-api.com (без ключа), а также с ipapi-co провайдером.
- GeoIP lookup (pretty) по IP/ домену или по вашему текущему IP (включая ipapi-co)
- JSON‑режим для пайплайнов
- Батч‑режим по списку целей из файла
- Режим чекапа
http: пробует методыGET/ POST/ PUT/ DELETE/ HEAD/ OPTIONS/ TRACE. Если на цели нет сервиса, либо порт 80 закрыт, то curl вернёт ошибку соединения - Кэширование ответов в
~/.cache/geoip-tool(уменьшает количество запросов к API):
- Хранится в
~/.cache/geoip-tool- JSON‑файлы по ключу target и lang- TTL кэша задаётся в
geoip_core.sh(CACHE_TTL_SEC)
- Интеграция с Burp Suite через расширение: вкладка
GeoIPдля запросов, данные берутся через локальную командуgeoip json
- BurpSuit - Extender - Options - Python Environment - укажите путь к JAR
- Extensions - Add: Extension type: Python - Extension file: examples/burp-extension/GeoIpTab.py
- Логирование заголовков X-Rl/X-Ttl (можно отслеживать лимит)
- Троттлинг
- Заголовки X-Rl и X-Ttl (для контроля лимитов в Burp) в stderr
_ipapi_request_raw:
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:-?}"
fidocker 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$ 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$ 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 <ip>
$ 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:
- до 45 запросов в минуту с одного IP; при превышении возможен HTTP 429 и временная блокировка
- только HTTP (без HTTPS)
- только некоммерческое использование, см. Terms of Service / Privacy Policy
Вы обязаны:
- соблюдать лимиты запросов (
sleepи кэш~/.cache/geoip-tool) - не использовать сервис в коммерческих продуктах/ сервисах без перехода на Pro-тариф
- ознакомиться с актуальными условиями на сайте ip-api.com перед использованием
Авторы geoip-tool не несут ответственности за любые последствия нарушения условий ip-api.com. или локального законодательства.
Copyright (c) 2026 Elijah S Shmakov



