forked from kay/RouterOS
Tab "Geräte" -> "LAN-Scanner", Refresh-Button "Neu scannen" + prominenter Stil. Neues Netzwerk-Tools-Menü: Ping/Traceroute/DNS-Auflösung über NetworkToolsService (eigene SSH-Verbindung, wie Backup/InterfaceTraffic- Monitor), mit Zeichen-Validierung gegen Command-Injection ueber einen boeswilligen DHCP-Hostnamen. Port-Scan laeuft direkt von diesem Mac ueber Network.framework (RouterOS hat kein eingebautes Portscan-Tool) - dabei einen echten NWConnection-Bug gefunden (verweigerte Verbindung meldet sich ueber .waiting, nicht .failed) und per Unit-Test gegen einen Loopback-Port aufgedeckt und gefixt. Zusaetzlich: Warnhinweis bei "Feste IP zuweisen" erklaert jetzt den Rueckweg. DE/EN-Umschalter zeigt Landesflaggen statt Text. 92 Tests gruen. HANDOFF.md/README.md (inkl. Mermaid-Diagramm)/Manual.md/ CHATLOG.md aktualisiert. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YDmUd93KxsYGr2kLTotWnG
17 lines
488 B
Swift
17 lines
488 B
Swift
import Foundation
|
|
|
|
/// Result of a `PortScanner.scan(...)` run against one LAN device, ready for display —
|
|
/// `DevicesView` colors each entry red (open), green (closed), or grey (unreachable/no response).
|
|
struct PortScanResult: Identifiable {
|
|
struct Entry: Identifiable {
|
|
var id: Int { port }
|
|
let port: Int
|
|
let serviceName: String?
|
|
let status: PortScanner.PortStatus
|
|
}
|
|
|
|
let id = UUID()
|
|
let deviceLabel: String
|
|
let entries: [Entry]
|
|
}
|