station: Identify devices by MAC OUI vendor lookup

Embed the IEEE OUI registry (~1MB pre-processed text file) and resolve
the vendor for every station MAC. Locally administered MACs (U/L bit
set, used by iOS/Android private addresses and virtual interfaces) are
skipped so we don't return spurious matches against randomized prefixes.

The vendor name shows up in the device card as a secondary line, and
falls back to the title position when no DHCP hostname is available —
"Apple" with the IP and MAC is far more useful than "Sans nom".

The lookup table loads lazily (sync.Once) on the first call so the
~40k-entry parse only runs when the station discovery code is exercised.
This commit is contained in:
nemunaire 2026-05-01 22:32:57 +08:00
commit 70140bc289
10 changed files with 39518 additions and 3 deletions

View file

@ -68,6 +68,7 @@ func toConnectedDevice(s backend.Station) models.ConnectedDevice {
Type: s.Type,
MAC: s.MAC,
IP: s.IP,
Vendor: s.Vendor,
SignalDbm: s.Signal,
RxBytes: s.RxBytes,
TxBytes: s.TxBytes,