解构蓝牙地址以及蓝牙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
總結
以上是生活随笔為你收集整理的解构蓝牙地址以及蓝牙MAC地址查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 之 HttpResponse 类
- 下一篇: EDM邮件营销时应该远离的8大不良做法