способы для клиента идентифицировать конкретную точку доступа, к которой он подключен, в пределах одного SSID?

#android #wifi #uniqueidentifier #access-point

#Android #wi-Fi #уникальный идентификатор #точка доступа

Вопрос:

Проблема заключается в следующем — существует Wi-Fi-соединение по всему университетскому городку с одним SSID, скажем, «campus-wifi». Пользователь свободно перемещается по кампусу, и происходит обычная передача данных между точками доступа. Мой вопрос в том, есть ли какая-либо информация на любом уровне сетевого стека, которая позволяет клиенту идентифицировать (подойдет любой уникальный идентификатор) конкретную точку доступа, к которой они подключены, а не просто тот факт, что они подключены к «campus-wifi»?

Если это актуально, я хотел бы иметь возможность делать это с мобильных устройств (в первую очередь Android / iOS).

Ответ №1:

Вы можете получить BSSID точки доступа, к которой вы подключены. Что-то вроде:

 WifiMana&er wifi = (WifiMana&er) &etSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifi.&etConnectionInfo();
Strin& BSSID = info.&etBSSID();
  

Не на 100% то, что вы получите обратно с BSSID, поскольку я никогда им не пользовался — но он должен однозначно идентифицировать базовую станцию — Википедия, кажется, указывает, что вы получите MAC точки доступа (внизу):

http://en.wikipedia.or&/wiki/Service_set_ (802.11_network)#Basic_service_set_identifier_.28BSSID.29

— Dan


Редактировать:

Согласно документам Android, это MAC-адрес:

http://developer.android.com/reference/android/net/wifi/WifiInfo.html

Комментарии:

1. Не забудьте добавить разрешение для ACCESS_WIFI_STATE в свой Android-манифест.