Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (2)

Лучшие ответы пользователя

Все ответы (2)
  • Откуда столько переносов в выводе в консоль?

    @0Memory
    Вместо того, чтобы сразу выводить порты сохранил в массив и вывел после проверки всех портов с помощью перебора

    import socket  # Библиотеки для работы с сетями
    import threading  # Импорт потоков
    from colorama import Fore  # Импорт цветов для текста
    from colorama import init  # Импорт иницилизации
    
    init()  # Иницилизация Colorama, если не сделать, на винде работать не будет
    
    host = input('IP or host name: ')  # Запрос хоста
    
    print('--------------------------------------')
    print(Fore.BLUE + '#########')
    print(Fore.BLUE + '#Scaning#')
    print(Fore.BLUE + '#########' + '\n')
    
    closed_ = {}
    opened_ = {}
    
    def PortCheck(port):
        # Запуск проверки порта
        s = socket.socket()  # Создаем сокет
        s.settimeout(1)
        # Проверка порта
        try:
            s.connect((host, port))
        except socket.error:
            closed_[port] = port
        else:
            s.close
            opened_[port] = port
    
    
    # Порты для проверки
    ports = [20, 21, 22, 23, 25, 42, 43, 53, 67, 69, 80, 110,
             115, 123, 137, 138, 139, 143, 161, 179, 443, 445,
             514, 515, 993, 995, 1080, 1194, 1433, 1702, 1723,
             3128, 3268, 3306, 3389, 5432, 5060, 5900, 5938, 8080, 10000, 20000]
    # Запуск потока для каждого порта из списка
    for port in ports:
        threading.Thread(target=PortCheck, args=[port]).start()
    
    for t in threading.enumerate():  # Получаем все потоки
        if t != threading.current_thread():  # Если это не текущий поток
            t.join()  # Ожидаем его завершения
    
    for port in ports:
        if closed_.__contains__(port):
            print(Fore.RED + (str(port) + ' is closed' + '\n'))
        else:
            print(Fore.GREEN + (str(port) + ' is open' + '\n'))
    
    print('--------------------------------------')
    input('Process ended. Press Enter.' + '\n')
    Ответ написан
    1 комментарий

Лучшие вопросы пользователя

Все вопросы (2)