Как зная IP и порт проверить в сети устройства или нет через Python?

Для проверки доступности устройств в сети по IP и порту, вы можете использовать модуль socket в Python. Вот пример кода, который демонстрирует, как это сделать:

import socket

def check_device(ip, port):
    # Создаем объект сокета
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    try:
        # Устанавливаем соединение с устройством
        sock.settimeout(2)  # Устанавливаем таймаут на 2 секунды
        sock.connect((ip, port))
        
        # Соединение успешно установлено
        print(f"Устройство {ip}:{port} доступно в сети.")
        
    except socket.error as e:
        # Ошибка соединения (устройство недоступно)
        print(f"Устройство {ip}:{port} недоступно в сети. Ошибка: {e}")
        
    finally:
        # Закрываем соединение
        sock.close()

# Пример использования
check_device("192.168.0.1", 80)

В этом примере мы создаем объект сокета с помощью socket.socket(). Мы используем AF_INET для указания, что работаем с IPv4-адресами, и SOCK_STREAM для указания типа сокета (TCP).

Затем, мы устанавливаем таймаут с помощью метода settimeout(), чтобы избежать долгого ожидания, если устройство не доступно.

Далее, мы вызываем метод connect() для установления соединения с указанным IP и портом. Если соединение успешно установлено, значит устройство доступно в сети, и мы выводим соответствующее сообщение.

В случае ошибки соединения, мы перехватываем исключение socket.error и выводим сообщение о недоступности устройства и ошибке, которая произошла.

В конце, мы закрываем соединение с помощью метода close().

Вы можете вызывать функцию check_device() для проверки доступности различных устройств в сети, передавая им соответствующий IP-адрес и порт.