import psutil import time import requests class SystemStats: @staticmethod def get_memory_usage(): """Obtiene el porcentaje de uso de memoria.""" return psutil.virtual_memory().percent @staticmethod def get_cpu_usage(): """Obtiene el porcentaje de uso de CPU.""" return psutil.cpu_percent(interval=0) @staticmethod def get_network_usage(): """Calcula la velocidad de subida y bajada de la red.""" net_io_start = psutil.net_io_counters() time.sleep(1) # Esperar 1 segundo para medir el uso net_io_end = psutil.net_io_counters() # Calcular velocidades bytes_sent_per_sec = net_io_end.bytes_sent - net_io_start.bytes_sent bytes_recv_per_sec = net_io_end.bytes_recv - net_io_start.bytes_recv return bytes_sent_per_sec, bytes_recv_per_sec @staticmethod def track_ip(ip): """Obtiene información de una IP mediante la API ipwho.is.""" try: response = requests.get(f"http://ipwho.is/{ip}") data = response.json() if not data.get("success", False): return {"error": data.get("message", "No se encontró información.")} return data except requests.exceptions.RequestException as e: return {"error": str(e)}