Skip to content

Latest commit

 

History

History
48 lines (44 loc) · 2.31 KB

Module_socket.md

File metadata and controls

48 lines (44 loc) · 2.31 KB

Модуль socket


Cокет — это интерфейс обмена данными между процессами. Существуют клиентские и серверные сокеты. Серверный сокет слушает определенный порт в ожидании подключения клиентов, а клиентский подключается к серверу. После того как было установлено соединение, начинается обмен данными.

Данный пример принимает название сайта, и при помощи модуля socket сканирует какие из портов этого сайта активны.

    import socket

    # Список портов для сканирования
    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]
    host = input('Введи имя сайта без http/https или IP-адрес: ')
    print ("Ожидай, идет сканирование портов!")
    # В цикле перебираем порты из списка
    for port in ports:
        # Создаем сокет
        s = socket.socket()
        # Ставим тайм-аут в одну cекунду
        s.settimeout(1)
        # Ловим ошибки
        try:
        # Пробуем соединиться, хост и порт передаем как список
            s.connect((host, port))
        # Если соединение вызвало ошибку
        except socket.error:
        # тогда ничего не делаем
            pass
        else:
            print(f"{host}: {port} порт активен")
        # Закрываем соединение
            s.close
    print ("Сканирование завершено!")

    # Вывод
    # Введи имя сайта без http/https или IP-адрес: xakep.ru
    # Ожидай, идет сканирование портов!
    # xakep.ru: 80 порт активен
    # xakep.ru: 443 порт активен
    # Сканирование завершено!