Skip to content

Тестовое задание для acribia.ru

License

Notifications You must be signed in to change notification settings

b0g3r/acribia_test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

acribia test [WIP]

Тестовое задание для acribia.ru

Необходимо по доменному имени, например google.com, проверить наличие поддоменнов. Причем проверять параллельно, а также иметь возможность задать глубину проверки.

В качестве списка поддоменов использовать 5000 самых популярных поддоменов

Должен быть фронтенд, который позволяет ввести домен, задать глубину проверки и видеть найденные хосты сразу после их нахождения бекендом.

Решение

  • В качестве критерия подтверждения наличия поддомена выбрано наличие A записи.
  • Для обеспечения "параллельности" - корутины и asyncio.as_completed,
  • Для выполнения условия "видеть как только найдётся" - вебсокеты (первое знакомство!)
  • Для фронтенда - vuejs, vuetify, vue-native-websocket

Известные недостатки

  • Для некоторых доменов, например yandex.ru, A запись отдаётся для совершенно любого поддомена, что снижает информативность проверки до нуля.
  • Сложность проверки растёт с глубиной: для 1 глубины это 5000 проверок, для 2 глубины это 25005000 проверок. Такое количество объектов в памяти помещается с трудом, поэтому функции as_completed проверки скармливаются чанками по 1000 штук.

About

Тестовое задание для acribia.ru

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published