udp_relay.py aktualisiert

This commit is contained in:
2026-04-06 20:45:00 +02:00
parent 83b2be6c83
commit ccf6c973cb

View File

@@ -15,11 +15,13 @@ LOOPBACK_TIMEOUT = 1 # Zeit in Sekunden, um Loopback zu verhindern
recent_messages = {} recent_messages = {}
def create_socket(port, bind_ip=''): def create_socket(port, bind_ip=''):
"""Erstellt und konfiguriert den UDP-Socket zum Lauschen auf Broadcast-Nachrichten.""" """Erstellt und konfiguriert den UDP-Socket zum Lauschen auf Broadcast-Nachrichten.
Bindet immer auf 0.0.0.0 um alle lokalen Interfaces zu hören."""
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.bind((bind_ip, port)) # Immer auf 0.0.0.0 binden um auf allen Interfaces zu hören
sock.bind(("0.0.0.0", port))
return sock return sock
def hash_message(message): def hash_message(message):
@@ -77,8 +79,8 @@ def main():
port2 = args.port2 port2 = args.port2
# Starten von zwei Threads für bidirektionales Relay mit zeitbasierter Loopback-Prüfung # Starten von zwei Threads für bidirektionales Relay mit zeitbasierter Loopback-Prüfung
thread1 = threading.Thread(target=relay_messages, args=(ip1, port1, ip2, port2)) thread1 = threading.Thread(target=relay_messages, args=(ip1, port1, ip2, port2), daemon=True)
thread2 = threading.Thread(target=relay_messages, args=(ip2, port2, ip1, port1)) thread2 = threading.Thread(target=relay_messages, args=(ip2, port2, ip1, port1), daemon=True)
thread1.start() thread1.start()
thread2.start() thread2.start()