114 lines
3.6 KiB
Python
114 lines
3.6 KiB
Python
"""
|
|
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...")
|