import subprocess
import sys
import psutil
import GPUtil
import socket
import platform
import getpass
import pyttsx3
import importlib
import requests
import shutil
import threading
from datetime import datetime
DISCK =
"[Link]
5VIVWO94zaz4IcR3iB_yBJCPVJRcMgL2FQUi150"
def install_modules():
modules = ['requests', 'psutil', 'GPUtil']
for module in modules:
if [Link].find_spec(module) is None:
subprocess.check_call([[Link], '-m', 'pip', 'install', module])
def get_system_info():
inf = {}
try:
# Nom de l'utilisateur
inf["Nom de l'utilisateur"] = [Link]()
# Nom de l'ordinateur
inf["Nom de l'ordinateur"] = [Link]()
# Système d'exploitation
inf["Système d'exploitation"] = f"{[Link]()} {[Link]()}"
# Version de Python
inf["Version de Python"] = platform.python_version()
# Mémoire RAM
mem = psutil.virtual_memory()
inf["Mémoire RAM"] = f"{[Link] // (1024 ** 3)} GB"
# Espace disque
total, used, free = shutil.disk_usage("/")
inf["Espace Disque Total"] = f"{total // (1024 ** 3)} GB"
inf["Espace Disque Utilisé"] = f"{used // (1024 ** 3)} GB"
inf["Espace Disque Libre"] = f"{free // (1024 ** 3)} GB"
# Batterie (si applicable)
battery = psutil.sensors_battery()
inf["Batterie"] = f"{[Link]}%" if battery else "Aucune information
de batterie"
# Temps de démarrage du système
boot_time = [Link](psutil.boot_time())
inf["Temps de démarrage"] = boot_time.strftime("%Y-%m-%d %H:%M:%S")
uptime = [Link]() - boot_time
inf["Temps depuis le démarrage"] = str(uptime)
# IP publique
try:
inf["IP publique"] = [Link]('[Link]
except Exception as e:
inf["IP publique"] = f"Erreur: {e}"
# IPv4
inf["IPv4"] = [Link]([Link]())
# IPv6
ipv6_info = [Link]([Link](), None, socket.AF_INET6)
inf["IPv6"] = [info[4][0] for info in ipv6_info] if ipv6_info else "Aucune
adresse IPv6"
# IP privée
inf["IP privée"] = []
for iface, addrs in psutil.net_if_addrs().items():
for addr in addrs:
if [Link] == socket.AF_INET:
inf["IP privée"].append([Link])
if not inf["IP privée"]:
inf["IP privée"] = "Aucune adresse IP privée trouvée"
# Adresse MAC
inf["Adresse MAC"] = []
for iface, addrs in psutil.net_if_addrs().items():
for addr in addrs:
if [Link] == psutil.AF_LINK:
inf["Adresse MAC"].append([Link])
if not inf["Adresse MAC"]:
inf["Adresse MAC"] = "Aucune adresse MAC trouvée"
# CPU
inf["CPU"] = [Link]()
# GPU
gpus = [Link]()
inf["GPU"] = ", ".join([[Link] for gpu in gpus]) if gpus else "Aucun GPU
détecté"
# Processus actifs (top 5 consommateurs de CPU)
inf["Processus actifs (top 5)"] = []
for proc in sorted(psutil.process_iter(['pid', 'name', 'cpu_percent',
'memory_percent']),
key=lambda p: [Link]['cpu_percent'], reverse=True)[:5]:
inf["Processus actifs (top 5)"].append(
f"{[Link]['name']} (PID: {[Link]['pid']}, CPU:
{[Link]['cpu_percent']}%, RAM: {[Link]['memory_percent']}%)"
)
# Informations réseau (vitesse)
try:
net_io = psutil.net_io_counters()
inf["Vitesse Réseau"] = f"Upload: {net_io.bytes_sent / (1024 ** 2):.2f}
MB, Download: {net_io.bytes_recv / (1024 ** 2):.2f} MB"
except Exception as e:
inf["Vitesse Réseau"] = f"Erreur: {e}"
# Alerte si usage CPU/RAM élevé
if [Link] > 80:
inf["Alerte RAM"] = f"Usage RAM élevé: {[Link]}%"
if psutil.cpu_percent(interval=1) > 80:
inf["Alerte CPU"] = f"Usage CPU élevé: {psutil.cpu_percent(interval=1)}
%"
except Exception as e:
inf["Erreur globale"] = f"Erreur lors de la récupération des infos système:
{e}"
return inf
def is_internet_available():
try:
[Link]('[Link] timeout=5)
return True
except [Link]:
return False
def send_info_to_discord(inf):
content = "\n".join(f"{key}: {value}" for key, value in [Link]())
payload = {"content": f"# INFOS SYSTEME\n{content}"}
if is_internet_available():
try:
[Link](DISCK, json=payload)
except Exception as e:
print(f"Erreur lors de l'envoi des données à Discord: {e}")
else:
print("Pas de connexion Internet. Les données n'ont pas été envoyées.")
def async_send_info(inf):
[Link](target=send_info_to_discord, args=(inf,)).start()
def confirm_and_send():
confirmation = input("Voulez-vous envoyer les informations à Discord ? (o/n) :
").lower()
if confirmation == 'o':
inf = get_system_info()
async_send_info(inf)
else:
print("Envoi annulé.")
# Installation des modules requis et exécution
install_modules()
confirm_and_send()