ipx

Reconnaissance

Компактная CLI-утилита на Go для извлечения IPv4 и IPv6 адресов из текстовых файлов или stdin. Поддерживает режим уникальных адресов, чтение из нескольких файлов, потоковую обработку. Применяется в OSINT и threat intelligence пайплайнах: парсинг логов, дампов данных, HTTP-ответов, конфигурационных файлов для быстрого извлечения IP-индикаторов.

Добавлен 16.07.2026 · Обновлён 16.07.2026 · Reconnaissance
Установка
# go install (рекомендуется, модуль зеркалирован на GitHub)
go install github.com/hrbrmstr/ipx@latest

# Из исходников
git clone https://github.com/hrbrmstr/ipx
cd ipx
go build -o ipx .
sudo mv ipx /usr/local/bin/

# Использование
cat access.log | ipx                          # все IP из stdin
ipx -u dump.txt                               # уникальные IP (дедупликация)
ipx -4 /var/log/syslog                        # только IPv4
ipx -6 -u /var/log/syslog                     # только IPv6, без дублей
grep "connection from" /var/log/*.log | ipx -u | wc -l
переведено ИИ

ipx

Извлекайте IPv4 и IPv6 адреса из текста.

ipx считывает текст из файлов или стандартного ввода и печатает каждый найденный валидный IP-адрес по одному в строке. Он работает как с IPv4, так и с IPv6 — включая сжатые формы вроде ::1 и 2001:db8:: — и нормализует вывод в каноническое представление.

Установка

go install github.com/hrbrmstr/ipx@latest

Или соберите из исходного кода:

git clone https://github.com/hrbrmstr/ipx.git
cd ipx
go build -o ipx .

Использование

ipx [flags] [file ...]

Если файлы не указаны, ipx читает данные из стандартного ввода.

Флаги

Флаг Описание
-4 Выводить только адреса IPv4
-6 Выводить только адреса IPv6
-u Убрать дубликаты из вывода (печатать каждый адрес не более одного раза)

Примеры

Извлечь все IP-адреса из файла журнала:

ipx /var/log/nginx/access.log

Передать ввод через ipx:

curl -s https://example.com | ipx

Показывать только адреса IPv4:

dig example.com ANY +short | ipx -4

Показывать только адреса IPv6, убрав дубликаты:

ipx -6 -u /var/log/syslog

Извлечь уникальные IP-адреса из нескольких файлов:

ipx -u access.log.1 access.log.2 access.log.3

Сочетать с другими инструментами:

grep -ri "connection from" /var/log/ | ipx -4 -u | wc -l

Как это работает

ipx использует широкое регулярное выражение для поиска строк-кандидатов, которые выглядят как IP-адреса, а затем проверяет каждого кандидата с помощью функции Go net.ParseIP. Этот двухэтапный подход позволяет избежать как ложных срабатываний (например, номеров версий вроде 1.2.3.4 в строках semver), так и пропусков (например, адресов IPv6 с сжатием ::).

Весь вывод нормализуется. Например, 2001:0db8:0000:0000:0000:0000:0000:0001 выводится как 2001:db8::1.

Лицензия

MIT

Комментарии
Войдите, чтобы оставить комментарий