Для того чтобы узнать, какой клиент отключен в Python, вы можете использовать модуль psutil
, который предоставляет функции для получения информации о различных системных ресурсах, включая список сетевых подключений.
Прежде всего, убедитесь, что модуль psutil
установлен на вашем компьютере. Если его нет, вы можете установить его, выполнив команду pip install psutil
в командной строке.
Затем вы можете использовать следующий код для определения отключенных клиентов:
import psutil def get_disconnected_clients(): disconnected_clients = [] # Получение списка всех сетевых подключений connections = psutil.net_connections() # Перебор всех подключений for connection in connections: # Проверяем только TCP подключения if connection.type == socket.SOCK_STREAM: # Проверяем статус подключения if connection.status == psutil.CONN_CLOSE_WAIT or connection.status == psutil.CONN_TIME_WAIT: # Получение IP-адреса и порта клиента client_address = connection.raddr client_ip = client_address.ip client_port = client_address.port # Создание записи клиента client = { 'ip': client_ip, 'port': client_port } # Добавление записи клиента в список отключенных клиентов disconnected_clients.append(client) return disconnected_clients # Пример использования clients = get_disconnected_clients() for client in clients: print(f"Отключен клиент с IP {client['ip']} и портом {client['port']}.")
В этом коде мы используем функцию net_connections()
из модуля psutil
, чтобы получить полный список сетевых подключений. Затем мы проверяем тип подключения (только TCP соединения), а также статус подключения (в данном случае, CONN_CLOSE_WAIT
и CONN_TIME_WAIT
соответствуют отключенным клиентам).
Для каждого отключенного клиента мы получаем его IP-адрес и порт и добавляем их в список отключенных клиентов.
В конце мы выводим информацию о каждом отключенном клиенте.