5

我的应用程序的重点是根据我连接的网络限制操作。我选择通过接入点的 MAC 地址或 BSSID 来定义网络。我正在使用 WifiInto 的 getConnectionInfo() 和 getBSSID() 来获取接入点的 BSSID。

我的印象是 BSSID 对于接入点来说是唯一的。但是,在不同的设备上,我得到的 BSSID 略有不同(最后 4 位不同,但前 8 位相同)。即使在同一设备中,连接时,BSSID 也可能会有所不同。

我的问题是,有没有办法可靠地唯一识别接入点?人们告诉我 MAC 地址是唯一的方法,但正如您在此处看到的,返回的 BSSID 略有不同。

4

2 回答 2

8

在回答您的问题之前,我想稍微解释一下 BSSID、SSID 和接入点。

一个接入点可以宣布多个 SSID。因此,为了唯一宣布一个 SSID,将使用单独的 BSSID。
多个接入点公布的 SSID 将通过单独的 BSSID(由每个接入点)公布。因此,如果您想查看有多少接入点宣布了上述 SSID,您可以计算出您为同一 SSID 获得了多少 BSSID。

双频(即 2.4 GHz 和 5 GHz)接入点将宣布 2 个 BSSID 用于相同的 SSID;一个用于 2.4 GHz 频段,另一个用于 5 GHz 频段。

例如,如果您的网络中有 10 个双频接入点,并且每个接入点都宣布相同的 SSID;您总共将有 20 个 BSSID 宣布相同的 SSID。
(虽然在一个地方不需要 10 个接入点,并且它们通常以只有 3 或 4 个能够相互收听的方式放置。因此,根据上述示例,您不会在任何一个地方找到 20 个 BSSID)。


现在,回答您的问题,关于唯一标识接入点。
BSSID 使用接入点的 MAC 地址创建,前 8 位数字与接入点的 MAC 地址相同,后 4 位数字对于每个 BSSID 都是唯一的。因此,通过查看 BSSID,您可以对唯一标识接入点进行一些猜测。

于 2016-10-20T12:07:37.670 回答
2

是的 BSSID 是唯一的,但是您可以在一个 RF 区域中为单个 ESSID 拥有多个 BSSID,即多个接入点宣布相同的 SSID,因此不同的客户端设备很可能会显示不同的 BSSID,这似乎发生在您的情况

于 2016-10-20T03:29:47.080 回答