2016-10-19 13 views
1

私のアプリのポイントは、接続しているネットワークに基づいてアクションを制限することです。私は、アクセスポイントのMACアドレスまたはBSSIDによってネットワークを定義することを選択しました。私はWifiIntoのgetConnectionInfo()とgetBSSID()を使ってアクセスポイントのBSSIDを取得しています。Android:同じアクセスポイントで異なるbssidを取得する

私は、BSSIDがアクセスポイントで一意であるという印象を受けています。しかし、異なるデバイス間で、私はわずかに異なるBSSIDを取得しています(最後の4桁は異なりますが、最初の8桁は同じです)。また、同じデバイスであっても、接続時にはBSSIDが少し異なる場合があります。

私の質問は、アクセスポイントを確実に一意に識別する方法はありますか?人々はMACアドレスがこれを行う唯一の方法だと言ってきましたが、ここで見てきたように、返されるBSSIDは少し異なります。

答えて

2

あなたの質問に答えを与える前に、BSSID、SSID、およびアクセスポイントについて少し説明したいと思います。

アクセスポイントは、複数のSSIDをアナウンスできます。したがって、SSIDを一意にアナウンスするために、別のBSSIDが使用されます。
複数のアクセスポイントから通知されるSSIDは、別々のBSSIDによって(各アクセスポイントによって)通知されます。したがって、SSIDをアナウンスしているアクセスポイントの数を確認したい場合は、同じSSIDを取得しているBSSIDの数を把握できます。

デュアルバンド(2.4 GHzと5 GHz)のアクセスポイントは、同じSSIDに対して2つのBSSIDをアナウンスします。 1つは2.4 GHz帯用、もう1つは5 GHz帯用です。

たとえば、ネットワークに10のデュアルバンドアクセスポイントがあり、それぞれに同じSSIDをアナウンスしている場合は、同じSSIDをアナウンスすると合計20のBSSIDが表示されます。
(10のアクセスポイントは1つの場所では必要ありませんが、一般的に3つまたは4つだけが互いに聞くことができるように配置されているため、上記の例のように1つの場所で20のBSSIDを見つけることはできません) 。今


、一意のアクセスポイントを識別については、あなたの質問に答えます。
BSSIDはアクセスポイントのMACアドレスを使用して作成しています。最初の8桁はアクセスポイントのMACと同じで、最後の4桁はBSSIDごとに一意です。 BSSIDを調べることで、アクセスポイントを一意に識別できるかどうかを判断できます。

+1

ご返信ありがとうございます。 –

+0

私は、BSSIDの最初の8桁のみを使用してアクセスポイントの身元を引き継ぐのではなく、さらに質問したいと思いますか?つまり、これらの最初の8桁が別のネットワークで使用されないようにしたいと思います。私はこれらのルータのいくつかのメーカーは、MACアドレスの独自の署名を持っているという事実を認識しています。 –

+0

ほとんどのケースではい。 OEM製品では、macには「組織識別子」が含まれています。これは世界中でユニークであり、OEMは一般にMACまたはBSSIDが重複しないようにします。しかし、それは必須ではありません。したがって、mac/bssidが重複する場合があります。 –

2

はいBSSIDはユニークですが、あなたは、単一のESSIDのためのRF areamで複数のBSSIDを持つことができ、それは別のクライアントデバイスが異なるBSSIDが表示されますように、そのかなり可能同じSSID を発表、複数のアクセスポイントで、これはいるようですあなたのケースで起こっている

+0

ありがとうございました。 BSSIDを使用して共通の識別子にアクセスする方法はありますか?別の答えは、受信BSSIDの最初の8文字を使用することを示唆しましたが、これがネットワーク間で十分な一意性があるかどうかはわかりません。 –

関連する問題