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

1

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

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

Теги:
wifi
uniqueidentifier
access-point

1 ответ

6
Лучший ответ

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

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifi.getConnectionInfo();
String BSSID = info.getBSSID();

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

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

- Дэн


EDIT:

В соответствии с документами Android это MAC-адрес:

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню