Для проверки доступности устройств в сети по 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-адрес и порт.