Создание сканера портов на Python. Часть 1: Быстрее чем Nmap

При всем уважении, я в конце статьи привел тесты, где использовался обычный nmap -sV и скрипт из статьи. Там видно что скрипт работал быстрее, можно потестить nmap с разными параметрами, не думаю что что-то сильно измениться. По поводу библиотеки, вы имеете ввиду argparser вместо sys? Я вроде уже признал этот недочёт в комментариях. Не вижу причины стыдиться выкладывать статью.
У Вас появились поклонники. Это здорово :)
 
  • Нравится
Реакции: Revoltage
Дичайший изврат запускать подпроцессы в потоках. Почему бы сразу не использовать ProcessPoolExecutor?
И 65к потоков... Серьезно? GIL: "ну да, ну да... пошел я нахер"
Я пишу вторую часть, спасибочки за указание на недочёты. Исправлю.
 
  • Нравится
Реакции: ace911 и anonym-s
Неужели твой код так быстро работает? Быстрее, чем существующие популярные аналоги?)
Как я понял, основной подход, описанный в данной статье, в ускорении работы программы, заключается в распараллеливании. Честно говоря, это очень сомнительная идея, учитывая, что Python - плохое решение для использования многопоточности с целью решение задач по ускорению выполнения. Причем многие комментарии, а также огромное количество статей в интернете от мастодонтов программирования, говорят об обратном эффекте использования многопоточности в Python проектах)

В основном, если опускаться до привитивизма, многопоточность используется для решения двух задач:
  1. Ускорение вычислений путём распараллеливания выполнения, задействуя вычислительные ресурсы ЭВМ;
  2. Абстрагирование действий пользователя и внутренних процессов программы. Примером решения подобной задачи является любое GUI-приложение.
Многопоточность в Python годится только для выполнения второй задачи, но никак не для ускорения работы выполнения (вычислений, в том числе сканирования). Конечно, есть хитрости, к примеру, некоторые библиотеки для Python вроде PyTorch (если не ошибаюсь с примером) скомпилированна JIT'ом, что позволяет ей работать, не обращая внимания на GIL. Однако в твоём коде никаких подобных хитростей я не заметил)

И так подведу вывод! При всем уважении к стараниям автора, мне статья совсем не понравилась. Вообще не понятно для чего она написана? Какую задачу/проблему решает или освещает? В чем реальные плюсы твоего подхода? Где результаты сравнений с другими сканерами? И самое главное - а почему пользователи должны скачивать именно твою программу, а не тот же самый NMAP?)

На эти вопросы я не нашел ответов в статье, более того у меня еще больше вопросов по самому коду :D
Автору удачи в начинаниях!
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!