Как узнать какой клиент отключен?

Для того чтобы узнать, какой клиент отключен в 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-адрес и порт и добавляем их в список отключенных клиентов.
В конце мы выводим информацию о каждом отключенном клиенте.