Многопоточный веб-сканнер на C/С++(Linux)
Многопоточный сканнер веб ресурсов на C (Unix платформа) на наявность установленного движка.
На входе:
кол-во потоков для работы
файл domains.txt - с доменами для сканирования (100k-300k записей)
файл ulrs.txt - с директориями для сканирования (100-200 записей)
подстрока поиска
Алгоритм:
программа начинает сканировать каждый домен на наличие директорий из файла ulrs.txt посредством метода head. при получении ответа 200 ОК, программа загружает страницу(эмулируя юзера - useragent, etc) и проверяет ее содержимое регулярным выражением(возможно проще - поиском по подстроке). если условие выполняется (подстрока найдена) - путь (domain.com/url1/) записывается в positive.log, и скандирование для этого домена прекращается. домены где не были найдены указанные директории, либо не найдена подстрока, записываются в negative.log.
для каждого запроса к удаленному домену, есть тайм-аут Х (устанавливается в конфиге), если У тайм-аутов для указанного домена - домен помещается в negative.log с коментарием (domain.com ; timeout).
все должно быть реализовано на Си как консольная тулза под Linux.