解構藍牙地址以及藍牙MAC地址查詢

現實場景中,經常會碰到“搜索到一個藍牙地址,但是沒有名稱,無法確定是不是想連接的設備等問題?”,這個時候就想着,如果可以從地址信息中能解析出某些有用的信息,幫助我們篩選就好了。別急,還真是有可能的,讓我們先來重新認識一下藍牙地址的構成。
當然,這裏介紹的是Bluetooth Address,即public address。並不針對BLE的random address。爲什麼呢?我們來慢慢看。

  1. 什麼是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。
    另外,藍牙設備地址還被用來在藍牙設備之間的無線通信中確定跳頻模式。

  2. 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. 解決的問題

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這一套。

希望此文對你有幫助,感謝閱讀

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章