解构蓝牙地址以及蓝牙MAC地址查询

现实场景中,经常会碰到“搜索到一个蓝牙地址,但是没有名称,无法确定是不是想连接的设备等问题?”,这个时候就想着,如果可以从地址信息中能解析出某些有用的信息,帮助我们筛选就好了。别急,还真是有可能的,让我们先来重新认识一下蓝牙地址的构成。
当然,这里介绍的是Bluetooth Address,即public address。并不针对BLE的random address。为什么呢?我们来慢慢看。

什么是Bluetooth Address(BD_ADDR)?

了解过蓝牙基本知识的人,都知道Bluetooth Address是制造商分配给每个蓝牙设备的唯一48位标识符(和电脑的MAC地址一样)。它是用来唯一识别一个物理设备的标识,正常情况下,该地址需要向IEEE申请(其实是购买,呵呵!)。企业交钱,IEEE保证地址的唯一性,皆大欢喜。
蓝牙地址通常显示为6个字节,以十六进制表示,用冒号分隔(示例- 00:11:22:33:FF:EE)。
其中,蓝牙地址的upper part(即most-significant 24 bits)被称为Organizationally Unique Identifier (OUI)。它可以用来确定设备的制造商。OUI是由电气和电子工程师协会(IEEE) Assigned。
另外,蓝牙设备地址还被用来在蓝牙设备之间的无线通信中确定跳频模式。

Bluetooth Address Structure

Bluetooth Address有三部分组成: NAP, UAP, LAP
举例来说,如下图所示:

从图中可以看到,OUI包含NAP和UAP两部分。其中NAP(Non-significant Address Part)部分2字节,为OUI的前16位;NAP值,用于跳频同步帧。另外,UAP(Upper Address Part)1字节,包含剩余的8位OUI;UAP值,被用作为各种蓝牙规范算法中的种子。

除了OUI之外,剩余的3字节,为LAP(Lower Address Part), 这部分蓝牙地址由设备供应商自己分配。LAP值,作为每一个transmitted Frame中Access Code的一部分,来唯一地标识蓝牙设备。LAP和UAP构成蓝牙地址的重要地址部分(SAP)。

解决的问题
1) 从Bluetooth Address的构成来看,属于设备商自己定义的部分,只有LAP part,即最多只能定义2^24 = 16777216个设备地址?这似乎对于某些大厂,比如Aplle,HUAWEI来讲,不够用?怎么办?
目前看来,最主要的解决方式是,每家公司多申请一些OUI,比如Apple就申请了几十个之多,当然大厂不差钱,哈哈。(因为每申请一个,就要花费一份钱向IEEE购买)。

2) 怎样通过地址,查询到厂商的信息呢?
当然有很多途径,这里分享一个比较好用的网址,如下:
添加链接描述

Click the “Lookup”, 然后就得到结果了:


3) 这一套不适合BLE的Random Address?

是的。因为Random Address的设备地址不是固定分配的,而是在设备启动后随机生成的,而且会根据一定的周期发生变化。它的出现正是为了规避Public address申请/维护成本高、复杂等问题的,当然主要是可以保证地址可变,更安全。所以,它并不遵从OUI这一套。

希望此文对你有帮助,感谢阅读
————————————————
版权声明:本文为CSDN博主「no输给现实」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/z497544849/article/details/106399061

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值