MAC 地址查询工具
看到 MAC
B8:27:EB:XX:XX:XX,瞬间知道"哦,树莓派"。这是工程师的"职业直觉"。
背景
MAC 地址前 24 位是 OUI(Organizationally Unique Identifier),由 IEEE 分配给厂商。
B8:27:EB:XX:XX:XX
└──OUI──┘ └─ 设备 ID ─┘
树莓派
认得 OUI 就 =认设备。看到 MAC 就 =知道哪家的设备。
但不可能记住几千个 OUI。所以做了这个工具。
它能做什么

- ✅ 厂商识别(基于 200+ 常见 OUI 数据库)
- ✅ 格式标准化(任意分隔符 → 标准格式)
- ✅ MAC 转十进制(数据库存储常用)
- ✅ 单播/组播判断(末位 bit 0 = 单播)
- ✅ U/L 位判断(倒数第二位 bit 0 = 厂商出厂,否则 = 虚拟机/手动改)
U/L 位:识别"真假" MAC
00:1B:63:AA:BB:CC ← Apple 出厂(U/L = 0,全局唯一)
02:42:AC:11:00:02 ← Docker 容器(U/L = 1,本地生成)
路由器上看到这个特征 —— 十有八九是虚拟机或容器。
使用场景
场景 1:交换机看到陌生 MAC
% display mac-address
MAC Address VLAN Port
00:1B:63-AA-BB-CC 10 GE0/0/1 ← Apple 设备
B8:27:EB-XX-XX-XX 20 GE0/0/2 ← 树莓派?
00:0C:29-YY-YY-YY 30 GE0/0/3 ← VMware 虚拟机
不用猜,全部查得到。
场景 2:ARP 欺骗排查
# 网关的 MAC 应该是稳定的
# 如果看到不同的 MAC 抢答 ARP,就是欺骗
arp -a
192.168.1.1 → 00:1A:2B:XX:XX:CC ← 假网关!
192.168.1.1 → 5C:53:8E:XX:XX:XX ← 真网关(华为)
场景 3:设备资产盘点
公司要做资产盘点,把所有 MAC 列出来,自动归类厂商:
00:1B:63:... Apple 150 台
3C:5A:B4:... Google 80 台
B8:27:EB:... Raspberry Pi 25 台
...
核心实现
OUI 数据库 = 一个大字典:
OUI_DATABASE = {
'001B63': 'Apple, Inc.',
'001F33': 'Apple, Inc.',
'3C5AB4': 'Google, Inc.',
'B827EB': 'Raspberry Pi Foundation',
# ... 200+ 条
}
def lookup_mac_vendor(mac):
s = re.sub(r'[^0-9A-Fa-f]', '', mac).upper()
oui = s[:6]
return OUI_DATABASE.get(oui, '未知厂商')
U/L 位判断:
first_byte = int(cleaned[:2], 16)
is_multicast = bool(first_byte & 0x01) # 末位 1 = 组播
is_local = bool(first_byte & 0x02) # 倒数第二位 1 = 本地生成
已知局限
⚠️ 内置数据库只收录 200+ 常见厂商,完整 IEEE OUI 数据库30 万+ 条。
要全库?两种方法:
- 自己加
oui.txt(从 IEEE 官网 下载,几十 MB) - 用我后面会做的"完整版"工具
在线使用
👉 MAC 地址查询
彩蛋:常见 MAC 前缀速查
B8:27:EB 树莓派
3C:5A:B4 Chromebook / Google Nest
00:50:56 VMware 虚拟机(默认)
08:00:27 VirtualBox 虚拟机
02:42:AC Docker 默认 bridge
52:54:00 QEMU/KVM 默认
FC:FB:FB Cisco Nexus vPC
背几个常用的,看到就秒懂。
📱 关注「网英的日常」,更多工程师工具持续更新!