Ping

Aus HB9FDZ
Version vom 28. August 2025, 10:51 Uhr von Thomas (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Einfaches Ping-Tool zur Überwachung und Protokollierung von ausfällen<syntaxhighlight lang="python"> import subprocess import time from datetime import datetime import os # IP-Adresse deines Servers SERVER_IP = "192.168.1.100" # ← bitte anpassen # Ping-Intervall in Sekunden PING_INTERVAL = 10 # Logdatei im aktuellen Verzeichnis LOG_FILE = os.path.join(os.getcwd(), "ping_log.txt") def ping_server(ip): try: # Windows verwendet '-n' stat…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Einfaches Ping-Tool zur Überwachung und Protokollierung von ausfällen

import subprocess
import time
from datetime import datetime
import os

# IP-Adresse deines Servers
SERVER_IP = "192.168.1.100"  # ← bitte anpassen

# Ping-Intervall in Sekunden
PING_INTERVAL = 10

# Logdatei im aktuellen Verzeichnis
LOG_FILE = os.path.join(os.getcwd(), "ping_log.txt")

def ping_server(ip):
    try:
        # Windows verwendet '-n' statt '-c'
        result = subprocess.run(['ping', '-n', '1', ip], stdout=subprocess.DEVNULL)
        return result.returncode == 0
    except Exception as e:
        print(f"Fehler beim Pingen: {e}")
        return False

def log_event(message):
    with open(LOG_FILE, "a") as f:
        f.write(f"{datetime.now()} - {message}\n")

def monitor():
    print(f"Starte Überwachung von {SERVER_IP}...\n")
    down_since = None

    while True:
        if ping_server(SERVER_IP):
            print(f"{datetime.now()} - Ping erfolgreich.")
            if down_since:
                duration = datetime.now() - down_since
                log_event(f"Server wieder erreichbar. Ausfall dauerte {duration}.")
                down_since = None
        else:
            print(f"{datetime.now()} - ❌ Server nicht erreichbar!")
            if not down_since:
                down_since = datetime.now()
                log_event("Server nicht erreichbar.")
        time.sleep(PING_INTERVAL)

if __name__ == "__main__":
    monitor()