jason5ng32 and Claude Opus 5.5
7a52e8acea
Feat(mac): answer MAC Lookup from the local IEEE registries
...
MAC Lookup no longer calls maclookup.app. The five public IEEE registries
(MA-L, MA-M, MA-S, IAB, CID) are a new `oui` dataset row — no key needed,
published as downloaded, refused below per-registry row floors — and
common/oui-db.js answers the longest assignment covering a query, the group
bit masked so a multicast address resolves to the block it derives from.
The country is read off the end of the registered address.
?mac= now takes a vendor prefix as well as a full address (6–12 hex digits,
colon / hyphen / dotted / bare), parsed by common/mac-input.js, which the
form shares. An address no block covers is still answered, with its flags.
The route is gated by requireOfflineData while the registries download at
boot. MAC_LOOKUP_API_KEY is gone.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-05 11:21:12 +08:00
..
2026-08-10 13:38:51 +08:00
2026-08-10 13:38:51 +08:00
2026-10-05 11:21:12 +08:00
2026-08-22 13:32:57 +08:00
2026-08-22 13:32:57 +08:00
2026-10-03 19:40:52 +08:00
2026-10-05 01:49:34 +08:00
2026-10-05 02:22:06 +08:00
2026-10-03 19:40:52 +08:00
2026-10-03 23:43:55 +08:00
2026-10-03 19:47:15 +08:00
2026-10-05 01:49:35 +08:00
2026-10-03 22:31:11 +08:00
2026-10-03 21:43:29 +08:00
2026-10-03 23:43:55 +08:00
2026-10-03 23:43:55 +08:00
2026-07-16 16:19:30 +08:00
2026-08-23 12:00:10 +08:00
2026-09-18 10:00:47 +08:00
2026-05-13 00:08:53 +08:00
2026-10-05 02:02:01 +08:00
2026-08-22 20:13:14 +08:00
2026-08-24 16:44:46 +08:00
2026-08-10 13:38:59 +08:00
2026-10-03 19:47:15 +08:00
2026-09-24 09:37:12 +08:00
2026-08-25 14:42:40 +02:00
2026-09-06 08:56:14 +08:00
2026-07-14 21:32:48 +08:00
2026-08-20 10:47:31 +08:00
2026-08-19 13:56:41 +08:00
2026-08-22 13:32:57 +08:00
2026-07-14 12:24:21 +08:00
2026-10-03 22:55:28 +08:00
2026-09-05 09:37:15 +08:00
2026-04-20 15:39:04 +00:00
2026-08-06 09:22:18 +08:00
2026-09-22 15:30:32 +08:00
2026-08-27 10:07:47 +08:00
2026-08-27 10:07:47 +08:00
2026-09-16 18:29:19 +08:00
2026-08-09 18:56:29 +08:00
2026-10-05 02:23:24 +00:00
2026-10-05 11:21:12 +08:00
2026-09-24 09:54:53 +08:00
2026-08-24 18:11:23 +08:00
2026-09-16 18:29:07 +08:00
2026-09-16 18:29:07 +08:00
2026-08-22 17:23:50 +08:00
2026-09-16 18:49:22 +08:00
2026-09-17 10:23:24 +08:00
2026-09-17 10:23:24 +08:00
2026-08-22 13:33:05 +08:00
2026-07-21 22:29:05 +08:00
2026-06-16 11:08:24 +08:00
2026-08-12 22:50:36 +08:00
2026-07-25 09:00:39 +08:00
2026-10-03 23:43:55 +08:00
2026-08-22 21:17:20 +08:00
2026-08-22 21:17:20 +08:00
2026-09-17 10:49:17 +08:00
2026-09-17 10:23:38 +08:00
2026-07-30 01:04:13 +08:00
2026-09-24 09:54:53 +08:00
2026-09-17 10:49:17 +08:00
2026-09-29 16:00:44 +08:00
2026-08-15 01:05:00 +08:00
2026-09-03 18:40:03 +08:00
2026-08-22 21:17:20 +08:00
2026-08-22 21:17:20 +08:00
2026-08-24 23:20:04 +08:00
2026-10-05 11:21:12 +08:00
2026-08-22 21:30:38 +08:00
2026-07-14 12:01:08 +08:00
2026-10-05 02:22:06 +08:00
2026-07-24 23:07:11 +08:00
2026-10-05 11:21:12 +08:00
2026-07-30 00:37:31 +08:00
2026-10-03 22:31:11 +08:00
2026-10-03 22:31:11 +08:00
2026-08-22 20:13:14 +08:00
2026-08-19 10:12:15 +08:00
2026-08-19 10:12:15 +08:00
2026-08-19 10:12:15 +08:00
2026-08-10 23:27:34 +08:00
2026-08-22 20:13:14 +08:00
2026-08-16 15:29:00 +08:00
2026-10-03 23:43:55 +08:00
2026-07-30 10:40:37 +08:00
2026-07-14 21:32:42 +08:00
2026-09-28 08:19:14 +08:00
2026-08-19 10:31:51 +08:00
2026-09-28 08:19:14 +08:00
2026-05-30 11:03:32 +08:00
2026-06-08 11:43:35 +08:00
2026-07-12 11:16:17 +08:00
2026-07-13 22:56:56 +08:00
2026-07-17 15:11:28 +08:00
2026-06-07 01:10:11 +08:00
2026-10-04 00:00:39 +08:00
2026-08-20 11:23:29 +08:00
2026-08-09 09:08:26 +08:00
2026-09-05 09:37:15 +08:00
2026-09-05 09:37:15 +08:00
2026-09-26 17:02:59 +08:00
2026-05-27 23:51:30 +08:00
2026-09-24 09:37:12 +08:00
2026-10-03 19:47:15 +08:00
2026-09-28 08:19:14 +08:00
2026-07-21 22:29:05 +08:00
2026-09-17 09:42:37 +08:00
2026-09-21 23:11:43 +08:00