app: router identification verified on-device — named a MikroTik RouterOS 7.23.2
The probe identified the LAN's IPv6 RA sender end to end from an unprivileged app: EUI-64 MAC recovery (78:9A:18:54:B8:F9, matching the Shizuku neighbor table) -> MikroTik by OUI, corroborated by the UPnP device description (RouterOS/7.23.2, MikroTik Router) and reverse DNS (router.hudelist.local). Cellular's RFC 7217 privacy RA source is correctly reported as not-EUI-64 instead of guessed. The SSDP sweep also inventoried a Synology DS1522+ and a Sky gateway — the raw material for future LLDP/mDNS cross-matching. Fixes found by running it: added the confirmed MikroTik OUI 78:9A:18 (+ other RouterBOARD ranges) and an elvis-operator bug that printed "no UPnP response" alongside valid UPnP data. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
38f8036252
commit
2e34463c0a
@@ -25,6 +25,8 @@ object Oui {
|
||||
// MikroTik
|
||||
"00:0C:42" to "MikroTik", "4C:5E:0C" to "MikroTik", "6C:3B:6B" to "MikroTik",
|
||||
"48:8F:5A" to "MikroTik", "2C:C8:1B" to "MikroTik", "DC:2C:6E" to "MikroTik",
|
||||
"78:9A:18" to "MikroTik", "18:FD:74" to "MikroTik", "64:D1:54" to "MikroTik",
|
||||
"74:4D:28" to "MikroTik", "C4:AD:34" to "MikroTik", "E4:8D:8C" to "MikroTik",
|
||||
// TP-Link
|
||||
"00:1D:0F" to "TP-Link", "14:CC:20" to "TP-Link", "50:C7:BF" to "TP-Link",
|
||||
"A4:2B:B0" to "TP-Link", "C0:06:C3" to "TP-Link", "EC:08:6B" to "TP-Link",
|
||||
|
||||
@@ -80,15 +80,18 @@ class RouterIdentityProbe(private val entries: List<NetworkInventory.Entry>) : P
|
||||
put("v4_gateway", v4Gw ?: "(none)")
|
||||
if (v4Gw != null) {
|
||||
put("v4_gateway_reverse_dns", reverseDns(v4Gw))
|
||||
ssdp[v4Gw]?.let { s ->
|
||||
put("upnp_server", s.server)
|
||||
put("upnp_location", s.location)
|
||||
s.details?.let { d ->
|
||||
val gwSsdp = ssdp[v4Gw]
|
||||
if (gwSsdp != null) {
|
||||
put("upnp_server", gwSsdp.server)
|
||||
put("upnp_location", gwSsdp.location)
|
||||
gwSsdp.details?.let { d ->
|
||||
put("upnp_manufacturer", d.manufacturer)
|
||||
put("upnp_model", d.model)
|
||||
put("upnp_friendly_name", d.friendlyName)
|
||||
}
|
||||
} ?: put("upnp", "no UPnP/SSDP response from the gateway")
|
||||
} else {
|
||||
put("upnp", "no UPnP/SSDP response from the gateway")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user