Non è necessario connettersi quando si utilizza btmgmt
$ sudo btmgmt find
Discovery started
hci0 type 7 discovering on
hci0 dev_found: 50:8C:FD:99:0A:EC type LE Random rssi -80 flags 0x0000
AD flags 0x06
eir_len 23
…
L'indicatore di potenza relativa del segnale è rssi -80
, ma l'elenco è molto più lungo e contiene più informazioni su questo e altri dispositivi.
Per spiare il tuo quartiere Bluetooth che mostra solo indirizzi MAC univoci con il loro RSSI più forte, esegui il seguente comando:
$ sudo btmgmt find |grep rssi |sort -n |uniq -w 33
hci0 dev_found: 40:43:42:B3:71:11 type LE Random rssi -53 flags 0x0000
hci0 dev_found: 44:DA:5F:EA:C6:CF type LE Random rssi -78 flags 0x0000
hci0 dev_found: 7F:7D:08:6B:E0:37 type LE Random rssi -74 flags 0x0000
hci0 dev_found: A4:58:0F:21:A1:8C type BR/EDR rssi -79 flags 0x0000
Su Linux, il modo per farlo è con il comando hcitool. Tuttavia, devi essere connesso per ottenere l'rssi di un dispositivo. Se vuoi ottenere ciò dalla riga di comando, prova:
#hcitool rssi AA:BB:CC:DD:EE:FF
Se vuoi vedere l'effettivo codice C per raggiungere questo obiettivo, dai un'occhiata al file bluez tools/hcitool.c, sotto la funzione cmd_rssi.
static void cmd_rssi(int dev_id, int argc, char **argv)
{
...
}
Per Bluetooth Low Energy , conosco solo un modo per farlo, ovvero l'utilizzo del comando #btmon. Esegui btmon in background, quindi cerca i dispositivi Bluetooth Low Energy:
#./btmon &
# hcitool lescan
I risultati visualizzati sul monitor dovrebbero essere simili a questo:
> HCI Event: LE Meta Event (0x3e) plen 12
LE Advertising Report (0x02)
Num reports: 1
Event type: Scan response - SCAN_RSP (0x04)
Address type: Public (0x00)
Address: AA:BB:CC:DD:EE:FF (<Vendor Name>)
Data length: 0
***RSSI: -34 dBm (0xde)***
AA:BB:CC:DD:EE:FF <Device Name>
Nota che quando usi btmon non devi connetterti per ottenere l'rssi di un dispositivo BLE.