Приветствую всех читателей!
Начну с того, а зачем изобретать велосипед, если их уже куча написана? Все мы понимаем, что велосипеды разные - чёрные, белые, красные )))
Когда я посмотрел примеры многопоточных сканеров, то понял, что большая часть из них имеет диапазон типа for port in range(1,100):
, значит перебор портов будет с 1 по 99. Если мне понадобится порт например 20000, то при попытке записи ]for port in range(1,20001):
сканер загнётся от переполнения памяти и невозможности создания нового потока.
Сканеры же, имеющий подобранные порты типа [21, 22, 23, 25, 38, 43, и т.д. были однопоточными, и работали весьма медленно...
В итоге я решил собрать новый велосипед из старых запчастей. Я хотел следующее:
1) Простой короткий код
2) Многопоточность
3) Указания нужных портов
Погнали:
Подключаем модуль threading для работы с потоками. Подключаем модуль socket для работы с сокетами (интерфейс...