ProjectKevin/models/SystemStats.py

40 lines
1.3 KiB
Python

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)}