问题如下 - 大学校园范围内的 wifi 连接只有一个 SSID,比如“campus-wifi”。用户可以在校园内自由漫游,并且通常会在接入点之间进行切换。我的问题是,网络堆栈的任何层是否有任何信息允许客户端识别(任何唯一标识符都可以)他们连接到的特定接入点,而不仅仅是他们连接到“校园”的事实-无线上网”?
如果它是相关的,我希望能够从移动设备(主要是 android/iOS)上做到这一点。
问题如下 - 大学校园范围内的 wifi 连接只有一个 SSID,比如“campus-wifi”。用户可以在校园内自由漫游,并且通常会在接入点之间进行切换。我的问题是,网络堆栈的任何层是否有任何信息允许客户端识别(任何唯一标识符都可以)他们连接到的特定接入点,而不仅仅是他们连接到“校园”的事实-无线上网”?
如果它是相关的,我希望能够从移动设备(主要是 android/iOS)上做到这一点。
您可以获得所连接的接入点的 BSSID。就像是:
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifi.getConnectionInfo();
String BSSID = info.getBSSID();
因为我从未使用过 BSSID,所以不是 100% 你会得到它——但它应该唯一地标识基站——维基百科似乎表明你将获得 AP 的 MAC(靠近底部) :
http://en.wikipedia.org/wiki/Service_set_(802.11_network)#Basic_service_set_identifier_.28BSSID.29
——丹
编辑:
根据 Android 文档,它是 MAC 地址:
http://developer.android.com/reference/android/net/wifi/WifiInfo.html