Bluetooth

/ Linux/Unix / Comment[2]
携帯電話に標準搭載されるようになり身近になったBluetooth
これがまた便利!

バッキャローのClass1ブルーツースUSBアダプタを入手したので遊んでみました。

早速USBに差し込み
# hciconfig


ドライバをインストールすることもなく、プラグアンドプレイで認識されました。

通信がアクティブなデバイスをスキャンしてみると
# hcitool scan

ヘッドセットと携帯がヒットしました。
携帯などのBluetoothに本名を設定しちゃだめですよ

Bluetooth名を求める
# hcitool name 00:●●:●●:●●:●●:●●

MACアドレスから名前を求めることができます。Bluetooth名を求めるのに接続や認証は必要ありません。


こんなシェルスクリプトを作ってみました。
#!/bin/sh
while :
do

if [ "`sudo l2ping -c 1 $1 >/dev/null;echo $?`" = "0" ];then
zenity --info --text="$1 \(`hcitool name $1`\)を発見しました。"
fi
done

l2pingでecho requestを指定MACアドレスへ送り、返答があるとその「MACアドレス」と「Bluetooth名」を情報ウインドウで表示させるというシェルスクリプトです。

$ ./bluetooth 00:●●:●●:●●:●●:●●


気になるあの子の半径約10m以内でhcitool scanを実行すればもしかしたらその子のBluetoothのMACアドレスを取得できるかもしれません。
そのMACアドレスをめもっといて、好きなときにこのシェルスクリプトを実行させる・・・
情報ウインドウが表示されたらその子は半径約10m以内に居ると思っていいでしょう。


あと、MACアドレスの頭6桁(00:00:00:00:00:00)はベンダーコードといい、会社ごとに決まっています。
http://www.vor.jp/oui/oui.html
機種を特定する手がかりになるので重要です。



ついでにこんなの作ってみました。
#!/bin/sh
while :
do
if [ "`sudo l2ping -c 1 $1 2>/dev/null;echo $?`" = "1" ];then
gnome-screensaver-command -a
echo "`date` , $1 , を見失いました" >> ~/blue_lost.log
fi
done

l2pingで特定のBluetoothのMACアドレスへecho requestを送り、返答が途絶えるとスクリーンセイバーを起動させ、その時刻をロギングするシェルスクリプトです。

ログ



スクリーンセイバーの設定で「スクリーンセーバーが起動したら画面をロックする」にチェックを入れておき、
携帯のBluetoothのMACアドレスを指定してシェルスクリプトを実行すれば、
携帯とPCが一定距離離れるとPC画面がロックされる自動ロックシステムの出来上がり。
echo requestで返答を返すデバイスならマウスやヘッドセットなどでも代用できます。

スクリーンセーバーのロックが作動したとしても、システム起動時に自動ログインする設定になっていたのでは、再起動すればログインできてしまい無意味なので設定に気を付けましょう。



また作ってみた
#!/bin/sh
while :
do
if [ "`sudo l2ping -c 1 $1 1>/dev/null;echo $?`" = "0" ];then
echo "`date "+%Y/%m/%d %R:%S"` , $1 , `hcitool name $1`" |tee -a "bluetooth-$1.log"
fi
done

特定のBluetoothのMACアドレスへl2pingを送り続けて返答があった場合、日時とBluetooth名をロギングするというシェルスクリプトです。

ログは「bluetooth-●●:●●:●●:●●:●●:●●.log」というファイル名で保存されます。


無くした携帯を探したり、誰かさんを追跡したり、色々なことに使えそうです。

関連記事

コメント

シェルスクリプトは便利ですよぉ
基本、コマンドを書くだけなので馴染み安いです

プログラミングもシェルスクリプトみたいに簡単に出来ればいいなぁといつも考えてます(`・ω・)

| URL | 長倉 怜二#DWa7YIhw

Linuxの授業とかでシェルスクリプト触っただけに、こんな使い方みてたら、かっけぇぇって思うね。

| URL | 小ライス#-

:
:
:
:
:
管理人のみ表示を許可