Files
ClaudeProjectManager/test_activity_connection.py
Claude Project Manager 4dab418f2f Initial commit
2025-07-09 22:10:42 +02:00

115 Zeilen
3.9 KiB
Python

#!/usr/bin/env python3
"""
Test-Skript für Activity Server Verbindung
"""
import requests
import socket
import time
from urllib.parse import urlparse
def test_connection(server_url="http://91.99.192.14:3001"):
print(f"Teste Verbindung zu: {server_url}")
print("-" * 50)
# Parse URL
parsed = urlparse(server_url)
host = parsed.hostname
port = parsed.port or 80
# 1. DNS/IP Test
print(f"1. Teste DNS-Auflösung für {host}...")
try:
ip = socket.gethostbyname(host)
print(f" ✓ IP-Adresse: {ip}")
except socket.gaierror as e:
print(f" ✗ DNS-Fehler: {e}")
return
# 2. Port Test
print(f"\n2. Teste TCP-Verbindung zu {host}:{port}...")
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(5)
try:
result = sock.connect_ex((host, port))
if result == 0:
print(f" ✓ Port {port} ist erreichbar")
else:
print(f" ✗ Port {port} ist nicht erreichbar (Fehlercode: {result})")
print(" Mögliche Ursachen:")
print(" - Firewall blockiert die Verbindung")
print(" - Server läuft nicht auf diesem Port")
print(" - Netzwerk-Routing-Problem")
return
except Exception as e:
print(f" ✗ Verbindungsfehler: {e}")
return
finally:
sock.close()
# 3. HTTP Test
print(f"\n3. Teste HTTP-Verbindung...")
try:
response = requests.get(f"{server_url}/health", timeout=5)
print(f" ✓ HTTP Status: {response.status_code}")
if response.status_code == 200:
print(" ✓ Server antwortet korrekt")
print(f" Response: {response.text[:100]}...")
else:
print(f" ⚠ Server antwortet mit Status {response.status_code}")
except requests.exceptions.ConnectionError as e:
print(f" ✗ Verbindungsfehler: {e}")
print(" Mögliche Ursachen:")
print(" - Server ist nicht erreichbar")
print(" - Firewall blockiert HTTP/HTTPS")
except requests.exceptions.Timeout:
print(" ✗ Timeout - Server antwortet nicht rechtzeitig")
except Exception as e:
print(f" ✗ Unerwarteter Fehler: {e}")
# 4. Socket.IO Test
print(f"\n4. Teste Socket.IO Verbindung...")
try:
# Socket.IO initial handshake
response = requests.get(
f"{server_url}/socket.io/?transport=polling&EIO=4",
timeout=5
)
print(f" Status: {response.status_code}")
if response.status_code == 200:
print(" ✓ Socket.IO Endpoint erreichbar")
else:
print(f" ✗ Socket.IO antwortet mit Status {response.status_code}")
except Exception as e:
print(f" ✗ Socket.IO Fehler: {e}")
# 5. Traceroute simulation (simplified)
print(f"\n5. Netzwerk-Route (vereinfacht)...")
import subprocess
try:
if socket.gethostname().lower().startswith("win"):
cmd = ["tracert", "-h", "10", host]
else:
cmd = ["traceroute", "-m", "10", host]
result = subprocess.run(cmd, capture_output=True, text=True, timeout=10)
print(result.stdout[:500])
except:
print(" Traceroute nicht verfügbar")
if __name__ == "__main__":
# Test mit dem Activity Server
test_connection("http://91.99.192.14:3001")
print("\n" + "=" * 50)
print("DIAGNOSE:")
print("=" * 50)
print("\nWenn Port erreichbar aber HTTP nicht funktioniert:")
print("- Prüfen Sie, ob der Activity Server korrekt läuft")
print("- Prüfen Sie die Server-Logs")
print("- Stellen Sie sicher, dass es ein HTTP-Server ist (nicht HTTPS)")
print("\nWenn Port nicht erreichbar:")
print("- Windows Firewall prüfen")
print("- Router/Netzwerk-Firewall prüfen")
print("- VPN-Verbindung prüfen (falls erforderlich)")
print("- Prüfen ob Sie im richtigen Netzwerk sind")