ble扫描相关的问题,蓝牙 MAC 是否可以确定厂商?

结论先说:

D2:6F:A6:57:89:7B 不能用来确定厂商。

下面严谨解释原因。


一、蓝牙 MAC 是否可以确定厂商?

传统上:

  • MAC 前 3 字节 = OUI(Organizationally Unique Identifier)

  • 由 IEEE 分配

  • 可以查到厂商

例如:

复制代码
00:1A:7D → Apple
3C:5A:B4 → Samsung

二、但你这个地址有问题

MAC:

复制代码
D2:6F:A6:57:89:7B

看第一个字节:

复制代码
D2

转换为二进制:

复制代码
1101 0010

重点看最低两位:

复制代码
bit0 = 0
bit1 = 1

位含义:

含义
bit0 单播(0) / 组播(1)
bit1 全球唯一(0) / 本地管理(1)

你的地址:

bit1 = 1

意味着:

这是 Locally Administered Address(本地管理地址)


三、什么是本地管理地址?

这种地址:

  • 不是 IEEE 分配

  • 不属于固定厂商 OUI

  • 通常是:

    • 随机生成

    • BLE 隐私地址

    • 手机随机地址

    • Windows 随机地址

    • iOS 隐私地址

    • Android 随机地址


四、BLE 常见随机地址类型

BLE 有三种随机地址:

  1. Static Random Address

  2. Resolvable Private Address(RPA)

  3. Non-Resolvable Private Address

现在几乎所有:

  • iPhone

  • Android

  • Windows

  • 蓝牙耳机

  • BLE 标签

都会使用随机地址防止跟踪。


五、如何判断是不是随机地址?

看第一字节前两位:

复制代码
xx:xx:xx:xx:xx:xx
↑
第一个字节

规则:

前两位 类型
00 Public
01 Random Static
10 Random Private Resolvable
11 Random Private Non-Resolvable

你的:

复制代码
D2 = 1101 0010

前两位:

复制代码
11

属于:

Random Private Non-Resolvable Address


六、意味着什么?

✔ 每次广播可能变

✔ 无法反查厂商

✔ 无法固定识别设备

✔ 设计目的就是防追踪


七、那什么时候可以查厂商?

只有当:

  • 地址是 Public Address

  • 且 bit1 = 0

  • 且前三字节属于 IEEE OUI

才能查厂商。


八、结合你前面的数据

你之前发的:

复制代码
Company ID = 0x0006

那是 Manufacturer Data 里的 Company ID。

⚠️ 那个可以确定厂商

但 MAC 地址不行。


九、如何识别厂商更可靠?

优先顺序:

  1. Manufacturer Data(Company ID)

  2. Service UUID

  3. 设备名称模式

  4. 特征广播结构

  5. GATT 服务

不要依赖 MAC。


十、如果你在做 BLE 设备识别系统

(结合你之前的扫描项目)

建议:

复制代码
if manufacturer_id == 0x004C:
    vendor = "Apple"
elif manufacturer_id == 0x0006:
    vendor = "Microsoft"

不要用 MAC 前缀。


最终结论

复制代码
D2:6F:A6:57:89:7B

是:

随机 BLE 私有地址

无法确定厂商

设计上就是防止识别


相关推荐
奔跑吧 android9 小时前
【Bluetooth-SIG】【CoreV6.2】【Vol3 Part F】【十三】【Error Handling——ATT_ERROR_RSP】
ble·bluetooth·att·gatt·蓝牙协议·bt·core_v6.2
HiDev_16 小时前
HCI 功能规范【5.1. Correctness】
蓝牙·ble·ble 蓝牙广播·蓝牙hci command·蓝牙广播扫描
HiDev_1 天前
HCI 功能规范【4.2. Controller to Host data flow control】
蓝牙·ble·ble 蓝牙广播·蓝牙hci command
HiDev_1 天前
HCI 功能规范【4.4. Command flow control】
蓝牙·ble·ble 蓝牙广播·蓝牙hci command
欢乐熊嵌入式编程20 天前
WIFI通信协议全解析18: ESP32 作为 AP 热点:打造自己的“微型路由器”(附完整实战代码)
物联网·wifi·esp32·蓝牙·wifi协议·ap热点
YF02111 个月前
Android BLE 信号强度获取与 底层原理深度解析
android·蓝牙
Refrain_zc1 个月前
无触摸屏场景下的蓝牙交互:Android 纯按键蓝牙扫描配对与 A2DP/Headset 连接
java·蓝牙
sweet丶1 个月前
iOS 蓝牙开发深入总结
ios·蓝牙
桑榆肖物1 个月前
ImprovWifi 跨平台传输层设计:把协议层做薄,把宿主层做稳
嵌入式硬件·wifi·.net·ble
liuniu08181 个月前
GAP-初始
蓝牙·gap