Skaaraje Опубликовано 22 часа назад Опубликовано 22 часа назад (изменено) 🌐 Скрипт для генерации из списка доменов файла json со списком IP Скрипт делает всё автоматически: резолв, кластеризацию, агрегацию в CIDR и экспорт в нативном формате приложения. ✨ Что умеет скрипт: Многопоточный резолв: Параллельная обработка через 77.88.8.8 (Yandex) → 9.9.9.9 (Quad9) с фоллбэком Умная агрегация IP: Автоматически группирует адреса одного домена в оптимальные CIDR-подсети (/31, /30, /24 и т.д.) CDN-friendly: Если домен резолвится в географически разбросанные IP (Cloudflare, Akamai, собственные CDN), скрипт не «ломает» маршрутизацию, а делит их на близкие кластеры Безопасные маски: Не создаёт сети шире /20, чтобы не направлять лишний трафик в туннель Чистый вывод: Одиночные IP пишутся без /32, подсети остаются с маской Глобальная дедупликация: Одинаковые подсети от разных доменов объединяются в одну запись → компактный файл Строгий формат json для чего надо: {"hostname": "IP/CIDR", "ip": ""} 📦 Установка зависимостей (Debian 12/13, Ubuntu 24.04+) В современных дистрибутивах Python защищён от установки пакетов через системный pip (PEP 668). От лени ставить через пакетный менеджер: sudo apt update sudo apt install python3-dnspython Никаких --break-system-packages и виртуальных окружений не требуется. 🛠 Быстрый запуск: python3 domain_to_ip.py domains.txt -j gotovi_rules.json Дополнительные опции: -o log.txt → сохранить лог резолва (успешные + ошибки) -t 20 → изменить количество потоков (по умолчанию 50) 📤 Пример результата (gotovi_rules.json): [ { "hostname": "176.114.120.0/21", "ip": "" }, { "hostname": "185.73.192.0/22", "ip": "" }, { "hostname": "185.138.252.0/22", "ip": "" }, { "hostname": "213.184.155.142", "ip": "" } ] 💡 Примечания для стабильной работы: Скрипт автоматически пропускает домены, которые не ответили обоим DNS-серверам Идеально масштабируется: список из 2000+ доменов обрабатывается за ~10–15 секунд Формат полностью совместим с импортом правил в куда надо → Настройки → что надо → Импорт Скрипт прикреплен, domains.txt для примера, deduplicate.sh для объединения старого и нового списка адресов. domain_to_ip.py domains.txt deduplicate.sh Изменено 21 час назад пользователем Skaaraje Цитата
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.