【问题标题】:How to retrieve advertising payload from iBeacon / BLE如何从 iBeacon / BLE 检索广告负载
【发布时间】:2014-04-29 09:06:31
【问题描述】:

如何在 linux 中检索蓝牙 LE 发射器的广告负载?

具体来说,我已经使用 hcitool 配置了 arduino 和 R-PI 以充当 iBeacon。

我正在寻找一个命令来打印设备当前的广告负载。

【问题讨论】:

  • 我尝试查看 BLE 规范,但找不到任何东西。多个程序可以一次向蓝牙加密狗发送 HCI 命令,因此能够从加密狗读取当前设置会很好。

标签: linux bluetooth-lowenergy ibeacon bluez


【解决方案1】:

在 Radius Networks,我们整理了一组脚本,用于从 Linux 上检测到的 BLE 广告中解析 iBeacon 标识符。你可以找到这个here.的描述

如果您只是想查看原始广告字节,可以使用以下命令在 Linux 上开始扫描:

sudo hcitool lescan --duplicates &

然后查看结果:

sudo hcidump --raw 

更多细节在上面链接的答案中。

【讨论】:

  • 大卫,感谢您的回答,但抱歉我不清楚。我正在寻找一种从我登录的设备中获取有效负载的方法。我知道一旦我使用 hcitool 配置了设备,它就会打印出有效负载。我正在寻找的是一个类似的命令来读取当前配置。我想这是一个 hcitool cmd,但没有找到正确的参数。
  • 明白。我不确定蓝牙规范是否允许读取此内容,并且 BlueZ 可能不会保留副本。如果无法访问,您可以在设置广告参数时将其保存在变量(环境或其他)中。
  • 谢谢 - 我试图找到一种方法来直接确认有效负载数据,以防它被其他方式修改。我想我将使用您的脚本版本,其中还包括在另一台设备上设置的 MAC 地址来确认有效负载数据。如果没有其他人插话,我会将其标记为正确答案。奇怪的是规范有一个写命令但没有等效的读?
【解决方案2】:

自从libpcap-1.0+ now supports Bluetooth capture you can use Wireshark/tshark/tcpdump 捕获和显示蓝牙数据包 - BTLE 和其他数据包类型。

要使用 Wireshark 捕获 LE 数据包,您仍然需要告诉蓝牙接口查询 LE 数据包,如上一个答案中所述:

sudo hcitool lescan --duplicates &

此外,如果您希望适配器定期查询处于可发现模式的蓝牙设备,您可以运行(尽管这些查询不会获取 BTLE 排放):

sudo hcitool spinq

【讨论】:

    【解决方案3】:
    sudo hcitool lescan --duplicates &
    sudo hcitool spinq
    

    两个命令都运行一个无限循环 如何运行有限循环并获取数据

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-15
      • 1970-01-01
      • 2018-02-01
      • 1970-01-01
      相关资源
      最近更新 更多