问题如下-有一个大学校园范围的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

07-27 13:30