Android: получение разных bssid для одной и той же точки доступа
Цель моего приложения - ограничить действия в зависимости от сети, к которой я подключен. Я решил определить сеть по MAC-адресу точки доступа или BSSID. Я использую getConnectionInfo () и getBSSID () от WifiInto, чтобы получить BSSID точки доступа.
У меня сложилось впечатление, что BSSID уникальны для точки доступа. Однако на разных устройствах я получаю немного разные BSSID (последние 4 цифры разные, но первые 8 одинаковы). И даже в одном устройстве при подключении BSSID может немного отличаться.
У меня вопрос, есть ли способ надежно однозначно идентифицировать точку доступа? Люди говорили мне, что MAC-адрес - единственный способ сделать это, но, как вы видите здесь, возвращаемый BSSID немного отличается.
2 ответа
Прежде чем дать ответ на ваш вопрос, я хотел бы немного рассказать о BSSID, SSID и точке доступа.
Точка доступа может объявить несколько SSID. Таким образом, для уникального объявления SSID будет использоваться отдельный BSSID.
SSID, объявленный несколькими точками доступа, будет объявлен отдельным BSSID (каждой точкой доступа). Итак, если вы хотите увидеть, сколько точек доступа объявляют указанный SSID, вы можете определить, сколько BSSID вы получаете за один и тот же SSID.
Точка доступа двухдиапазонная (то есть 2,4 ГГц и 5 ГГц) объявит 2 BSSID для того же SSID; Один для диапазона 2,4 ГГц, а другой для диапазона 5 ГГц.
Например, если в вашей сети есть 10 двухдиапазонных точек доступа, каждая из которых объявляет один и тот же SSID; у вас будет всего 20 BSSID, объявляющих тот же SSID.
(Хотя 10 точек доступа не нужны в одном месте, и они, как правило, расположены таким образом, что только 3 или 4 способны слушать друг друга. Поэтому вы не найдете 20 BSSID в каком-либо одном месте, как в примере выше).
Теперь, чтобы ответить на ваш вопрос, об уникальной идентификации точек доступа.
BSSID создается с использованием MAC-адреса точки доступа, причем первые 8 цифр совпадают с MAC-адресом точки доступа, а последние 4 цифры уникальны для каждого BSSID. Таким образом, просматривая BSSID, вы можете сделать некоторую догадку об уникальной идентификации точки доступа.
Да, BSSID уникальны, но вы можете иметь несколько BSSID в области RF для одного ESSID, то есть нескольких точек доступа, объявляющих один и тот же SSID, так что вполне возможно, что на другом клиентском устройстве будет показан другой BSSID, что, похоже, происходит в вашем случае