[Python] Сканирование портов, универсальный многопоточный кусок

  • На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.
  • Мы обновили Tor зеркало до v3!
    Для входа используйте следующий url: darkv3nw2...bzad.onion/
  • Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
    Ссылка: https://t.me/chat_dark_time

0x6AB

VIP

0x6AB

VIP
3 Июл 2017
18
9
Писал один сетевой инструмент и пришлось накодить сканер портов который сможет в многопоточность независимо от основных потоков, набросал вот такой небольшой кусочек кода, работает на отлично, вполне подходит для встраивания в любой код, никаких зависимостей.
Python:
class port_scanner():
    def __init__(self, ip):
        self.ip = ip

    def get_open_ports(self, port):
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.settimeout(1)
        res = s.connect_ex((self.ip, port))
        s.close()
        if res == 0:
            return port
        else:
            return False

    def start(self):
        open_ports = []
        with ThreadPoolExecutor(max_workers=100) as executor:
            for result in executor.map(self.get_open_ports, range(1, 1000)):
                if result:
                    open_ports.append(result)
        return open_ports
Пример использования
Код:
ports = port_scanner("цель для сканирования (ip/host)").start()
 

О нас

  • Наше сообщество существует уже много лет и гордится тем, что предлагает непредвзятое, критическое обсуждение различных тем среди людей разных слоев общества. Мы работаем каждый день, чтобы убедиться, что наше сообщество является одним из лучших.

    Dark-Time 2015 - 2022

    При поддержке: XenForo.Info

Быстрая навигация

Меню пользователя