fix(satellite): Router als router erkennen, Docker-Netze nicht als Geraete
Auf ARIAs VM fand der neue Satellit 58 Geraete, darunter die Container der Docker-Netze (docker0/br-*/veth) — die sind keine Geraete und fallen jetzt aus der ARP-Liste. Die FRITZ!Box 5590 kam per SSDP als 'media-renderer'; InternetGatewayDevice / FRITZ!Box heisst jetzt type 'router'. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -597,6 +597,10 @@ def _discover_ssdp(timeout: float) -> list[dict]:
|
|||||||
entry["name"] = dev["name"]
|
entry["name"] = dev["name"]
|
||||||
if dev.get("model"):
|
if dev.get("model"):
|
||||||
entry["model"] = dev["model"]
|
entry["model"] = dev["model"]
|
||||||
|
# Router (FritzBox & Co.) melden sich per SSDP als
|
||||||
|
# InternetGatewayDevice — kein Medienabspieler.
|
||||||
|
if re.search(r"InternetGatewayDevice|FRITZ!Box", f"{entry['name']} {dev.get('model', '')}"):
|
||||||
|
entry["type"] = "router"
|
||||||
if dev.get("manufacturer"):
|
if dev.get("manufacturer"):
|
||||||
entry["manufacturer"] = dev["manufacturer"]
|
entry["manufacturer"] = dev["manufacturer"]
|
||||||
if dial_app or dev.get("dialAppUrl"):
|
if dial_app or dev.get("dialAppUrl"):
|
||||||
@@ -641,6 +645,12 @@ def _discover_arp() -> list[dict]:
|
|||||||
ip, _hw, _flags, mac = parts[0], parts[1], parts[2], parts[3]
|
ip, _hw, _flags, mac = parts[0], parts[1], parts[2], parts[3]
|
||||||
if mac == "00:00:00:00:00:00":
|
if mac == "00:00:00:00:00:00":
|
||||||
continue
|
continue
|
||||||
|
# Docker-interne Netze (Container auf DIESEM Rechner) sind keine
|
||||||
|
# Geraete — laeuft der Satellit auf einem Docker-Host (z.B. ARIAs
|
||||||
|
# VM), stuenden sonst alle Container in der Liste.
|
||||||
|
iface = parts[5] if len(parts) > 5 else ""
|
||||||
|
if iface.startswith(("docker", "br-", "veth")):
|
||||||
|
continue
|
||||||
out.append({
|
out.append({
|
||||||
"id": _slug(f"host-{ip}"), "name": ip, "type": "host",
|
"id": _slug(f"host-{ip}"), "name": ip, "type": "host",
|
||||||
"ip": ip, "mac": mac, "via": "arp",
|
"ip": ip, "mac": mac, "via": "arp",
|
||||||
|
|||||||
Reference in New Issue
Block a user