#!/usr/bin/env python3.11 """ Überprüfung der Drucker-IP-Adressen Stellt sicher, dass nur 192.168.0.x Adressen verwendet werden """ from models import get_cached_session, Printer def check_printer_ips(): """Überprüfe alle Drucker-IP-Adressen.""" print("=== DRUCKER-IP-ADRESS-ÜBERPRÜFUNG ===") with get_cached_session() as db_session: printers = db_session.query(Printer).all() print(f"Gefundene Drucker: {len(printers)}") print() valid_printers = [] invalid_printers = [] for printer in printers: print(f"ID: {printer.id}") print(f"Name: {printer.name}") print(f"Location: {printer.location}") print(f"IP-Adresse: {printer.ip_address}") print(f"Tapo-IP: {printer.tapo_ip}") print(f"Aktiv: {printer.active}") # IP-Adresse validieren ip_valid = False tapo_valid = False if printer.ip_address: if printer.ip_address.startswith("192.168.0."): ip_valid = True print(f"✅ IP-Adresse ist gültig: {printer.ip_address}") else: print(f"❌ IP-Adresse ist ungültig: {printer.ip_address} (muss 192.168.0.x sein)") else: print("⚠️ Keine IP-Adresse gesetzt") if printer.tapo_ip: if printer.tapo_ip.startswith("192.168.0."): tapo_valid = True print(f"✅ Tapo-IP ist gültig: {printer.tapo_ip}") else: print(f"❌ Tapo-IP ist ungültig: {printer.tapo_ip} (muss 192.168.0.x sein)") else: print("⚠️ Keine Tapo-IP gesetzt") # Redundanz prüfen if printer.ip_address and printer.tapo_ip: if printer.ip_address == printer.tapo_ip: print("✅ IP-Adressen sind identisch (korrekt)") else: print(f"⚠️ IP-Adressen unterschiedlich: Drucker={printer.ip_address}, Tapo={printer.tapo_ip}") if ip_valid and tapo_valid: valid_printers.append(printer) else: invalid_printers.append(printer) print("-" * 50) print(f"\n=== ZUSAMMENFASSUNG ===") print(f"Gültige Drucker: {len(valid_printers)}") print(f"Ungültige Drucker: {len(invalid_printers)}") if invalid_printers: print("\n❌ UNGÜLTIGE DRUCKER:") for printer in invalid_printers: print(f" - {printer.name} (ID: {printer.id}): IP={printer.ip_address}, Tapo={printer.tapo_ip}") return valid_printers, invalid_printers if __name__ == "__main__": check_printer_ips()