
レーダー分析とワードライビングのためのTUI Bluetoothユーティリティ 🦉
Python と Bleak ライブラリを使用したシンプルな Bluetooth Low Energy (BLE) スニファー
時間制限スヌープ |
無制限スヌープ |
iTerm2 を使用している場合、ターミナル自体に Bluetooth の権限があることを確認する必要があります。システム設定(またはシステム環境設定)を開きます。「プライバシーとセキュリティ」>「Bluetooth」に進み、iTerm2 へのアクセスを許可します。
python -m venv .venv
source .venv/bin/activate
pip install asyncio bleak rich manuf bluetooth-numbers geocoder
python3 bluesnoop.py
bluesnoop はあらゆるコントリビューションを受け付けています。リポジトリをフォークし、実装したい機能や修正を含むプルリクエストを作成してください。
An Organizationally Unique Identifier (OUI) is a 24-bit (three-byte) number, managed by the IEEE, that uniquely identifies a manufacturer or organization for network devices, forming the first half of a device's MAC address to ensure global uniqueness
Python の uuid.UUID クラスは、RFC 4122 標準に基づいて文字列を厳密に検証します。具体的には、文字列内の特定の位置にある「バージョン」の数字をチェックします。
失敗の理由 標準の UUID では、3 番目のグループ(例:xxxx-xxxx-Nxxx-xxxx)の最初の数字は、1 から 5 までの数字(バージョンを表す)である必要があります。
データを見ると:
D5D93B6E-C324-FD7B... -> バージョンの数字は F です。
6ADBBD89-CBFF-0FE8... -> バージョンの数字は 0 です。
F と 0 は有効な RFC 4122 バージョン(1-5)ではないため、Python は ValueError: badly formed hexadecimal UUID string をスローします。
以下についてさらに詳しく調べてください:
discovered_devices_and_advertisement_data // https://bleak.readthedocs.io/en/latest/api/scanner.html#bleak.BleakScanner.discovered_devices // 16:20 @ 1/8/26 BW
bluesnoop を気に入っていただけましたら、今後のプロジェクトの資金調達のため、スポンサーになることをご検討ください。
他の作品をご覧になるには、私の GitHub プロフィール をご覧ください。