Android:为同一接入点获取不同的bssid

标签 android wifi router mac-address bssid

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

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

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

最佳答案

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

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

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

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


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

关于Android:为同一接入点获取不同的bssid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40139849/

相关文章:

android - 在android上实现页面 curl ?

android - ProgressDialog 在异步任务中卡住

java - Java Android 中哪个数据库?

android - 一次获取 LinearLayout 中的所有 subview

javascript - 带有参数导航返回的 React Router 需要双击

android - Android 的巨大 UDP 延迟/滞后

android - NFC交接WIFI+加密

c - 检测 WAN radio 电源关闭

javascript - 使用路由器进行导航并将对象作为查询字符串传递

laravel - BoundMethod.php中不存在类App\Providers\Router