Необходимо реализовать web-сервис на языке python. Сервис должен производить рекурсивный поиск поддоменов по заданному домену с учётом заданной глубины. Входные значения:
- домен - любой валиндый домен: google.com, raw.githubusercontent.com, спутник.рф, и т.п.
- глубина - числовое значение от 1 до 3.
Поиск по поддоменам должен производиться параллельно(!). Список поддоменов можно взять отсюда:
https://raw.githubusercontent.com/darkoperator/dnsrecon/master/subdomains-top1mil-5000.txt
Поиск должен выполняться на бекенде. Успешные результаты поиска должны отображаться пользователю на ту же страницу постепенно (как только поддомен найден) и без перезагрузки страницы.
- Для подтверждения, что поддомен существует -- было выбрано проверять наличие А записи.
- Для "параллельного" поиска -- coroutines
- Для постепенного добавления -- websockets
- Для перебора всех возможных комбинаций -- генераторы
- Для обеспечения хоть какой-то отзывчивости веб интерфейса при работе -- таблица с пагинацией и добавление в нее через setTimeout(() => {}, 0)
docker build -f Dockerfile.app -t resolver . docker build -f Dockerfile.nginx -t app_nginx . docker-compose -p resolver up -d
Теперь приложение поднято и доступно на http://localhost
docker build -f Dockerfile.app -t resolver . docker build -f Dockerfile.nginx -t app_nginx . docker save resolver -o resolver.tar docker save app_nginx -o app_nginx.tar
Или запуск скрипта для сборки:
/bin/bash build.sh
Для запуска приложения из архива необходимо распаковать архив и запустить файл deploy.sh, который там находится
tar -xvf resolver.tar.gz cd resolver chmod +x deploy.sh bash deploy.sh
Теперь приложение поднято и доступно на http://localhost (если не занят 80-ый порт).