2012-01-18 4 views
5

LinuxベースのOSを実行するシングルボードコンピュータ(SBC)を使用してモバイルデバイス検出器を作成します。 SBCにはUSB/802.11ワイヤレスアダプタが搭載されています。 SBCはDHCPサーバーになります。モバイルデバイスは、SBCのワイヤレスネットワーク(アドホックまたはインフラストラクチャであれば問題ありません)に参加します。モバイルデバイスがネットワークに参加すると、SBCはそれを検出します。受信したモバイルデバイスのMACアドレスを、受け入れたアドレスのセットでチェックします。一致した場合、SBCはコマンドを実行します。既知の無線デバイスがLinux上で私の無線LANに参加するときを検出する方法

私は基本的なLinuxの知識があります。私はシェルスクリプトを書くことができませんが、私はC++/Qtを知っています。私はどこから始めるべきかわかりません。このプロジェクトで使用する関連コマンドラインユーティリティまたはライブラリを知っていますか?

P.S:おそらく、DHCPクライアントリストがいつ変更されるかを検出する方法が必要です。 macアドレスフィルタリングと一緒に、これは動作するかもしれません。

+0

あなたは少しシェルスクリプトを学ばなければなりません。デーモンを書く場合は、init.dの開始スクリプトと終了スクリプトを記述する必要があります。まあ、それほど難しいことではありませんが、基本を知る必要があります:-) – rekire

+0

既存の開始/終了スクリプトから作成できます。それは問題じゃない。 – niw3

+0

たとえば、そのSBCで実行されるソフトウェアの種類など、詳細をいくつか教えてください。ソフトウェアAPのようなことをするには、hostapdが必要です。私は、MACフィルタリング機能が組み込まれていると信じています。 –

答えて

0

nmapを使用してネットワークを検出できます。 Hereいくつかの例があります。

次に、出力を解析する必要があります。例えば:

while true; do 
    nmap -v -sT 192.168.0.0/24 | fgrep "YOUR_SEARCHED_IP" && \ 
    echo BINGO "YOUR_SEARCHED_IP" IS IN THE 192.168.0.0/24 NETWORK 
done 

そしてnmapは、ポートチェックをスキップする-snオプションがあります。

ip neighbor showを使用すると、近隣のネットワークのIPアドレスを確認することができます。

それとも同じように、簡単なpingテストを使用することができます。

for ip in $(seq 1 254); do 
    ping -c 1 192.168.1.$ip>/dev/null && \ 
    echo “192.168.1.$ip is UP" 
done 

そして、あなたがホスト名を確認するためにnslookupとそれを組み合わせることができます。

+0

ありがとうございます。しかし、nmapは開いているポートを検索するので、モバイルデバイスはオープンポートを持っていなければなりません。それ以外の場合は検出されません。 – niw3

+0

'nmap -o $ IP_RANGE'を実行すると、' Nmapは$ IP'でレポートをスキャンし、 'host is up'行に次の行を報告します。しかし、私の更新答えを見てください。 –

0

nmapはIP層をテストしますが、ワイヤレスデバイスはそれを使用する必要はありません。

また、ワイヤレスインターフェイスで「モニタ」モードを使用したり、適切なリスニングプログラム(たとえば、 airodump-ng。ワイヤレスネットワークがクラ​​イアントの分離を使用する場合、実際に参加しているクライアントよりもはるかに少ないクライアントが表示され、適切にスイッチされたイーサネットと同じように、別のセグメントに遠いクライアントが必ずしも表示されないことにも注意してください。

関連する問題