""" Script de diagnostic pour tester la connexion à LibreHardwareMonitor """ import socket import urllib.request import sys print("=" * 60) print("DIAGNOSTIC DE CONNEXION À LIBREHARDWAREMONITOR") print("=" * 60) # Test 1: Résolution DNS de localhost print("\n[1] Résolution DNS de 'localhost'...") try: ip = socket.gethostbyname('localhost') print(f" ✅ localhost résolu en: {ip}") except Exception as e: print(f" ❌ Erreur: {e}") # Test 2: Vérifier toutes les adresses pour localhost print("\n[2] Toutes les adresses pour 'localhost'...") try: infos = socket.getaddrinfo('localhost', 8085) for info in infos: print(f" → {info[0].name}: {info[4]}") except Exception as e: print(f" ❌ Erreur: {e}") # Test 3: Connexion socket directe sur 127.0.0.1 print("\n[3] Test connexion socket sur 127.0.0.1:8085...") try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(5) result = sock.connect_ex(('127.0.0.1', 8085)) sock.close() if result == 0: print(" ✅ Port 8085 ouvert sur 127.0.0.1") else: print(f" ❌ Port fermé (code: {result})") except Exception as e: print(f" ❌ Erreur: {e}") # Test 4: Connexion socket directe sur localhost print("\n[4] Test connexion socket sur localhost:8085...") try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(5) result = sock.connect_ex(('localhost', 8085)) sock.close() if result == 0: print(" ✅ Port 8085 ouvert sur localhost") else: print(f" ❌ Port fermé (code: {result})") except Exception as e: print(f" ❌ Erreur: {e}") # Test 5: Requête HTTP avec urllib (sans requests) print("\n[5] Test HTTP avec urllib sur 127.0.0.1...") try: req = urllib.request.urlopen('http://127.0.0.1:8085/data.json', timeout=5) data = req.read() print(f" ✅ Réponse reçue! ({len(data)} bytes)") print(f" Début: {data[:100]}...") except Exception as e: print(f" ❌ Erreur: {e}") # Test 6: Requête HTTP avec urllib sur localhost print("\n[6] Test HTTP avec urllib sur localhost...") try: req = urllib.request.urlopen('http://localhost:8085/data.json', timeout=5) data = req.read() print(f" ✅ Réponse reçue! ({len(data)} bytes)") except Exception as e: print(f" ❌ Erreur: {e}") # Test 7: Requête avec requests (si disponible) print("\n[7] Test HTTP avec requests sur 127.0.0.1...") try: import requests resp = requests.get('http://127.0.0.1:8085/data.json', timeout=5) print(f" ✅ Réponse reçue! Status: {resp.status_code}, {len(resp.content)} bytes") except ImportError: print(" ⚠️ Module requests non installé") except Exception as e: print(f" ❌ Erreur: {e}") # Test 8: Requête avec requests sur localhost print("\n[8] Test HTTP avec requests sur localhost...") try: import requests resp = requests.get('http://localhost:8085/data.json', timeout=5) print(f" ✅ Réponse reçue! Status: {resp.status_code}") except ImportError: print(" ⚠️ Module requests non installé") except Exception as e: print(f" ❌ Erreur: {e}") print("\n" + "=" * 60) print("RECOMMANDATION:") print("=" * 60) print(""" Si les tests 3-4 échouent mais que le navigateur fonctionne: → Vérifiez le pare-feu Windows (autorisez Python) Si les tests avec 127.0.0.1 réussissent mais localhost échoue: → Problème IPv6, utilisez 127.0.0.1 dans la config Si tout échoue sauf le navigateur: → Un proxy ou antivirus bloque peut-être Python → Essayez de désactiver temporairement l'antivirus """) input("\nAppuyez sur Entrée pour fermer...")