我的应用程序的目的是根据我连接的网络限制操作。我选择通过接入点的mac地址或BSSID来定义网络。我正在使用WifiInto的getConnectionInfo()和getBSSID()来获取接入点的BSSID。
我认为BSSID对于接入点是唯一的。但是,在不同的设备上,我得到的BSSID略有不同(最后4位数字不同,但前8位是相同的)。即使在同一设备中,在连接时,BSSID也可能略有不同。
我的问题是,有没有办法可靠地唯一识别接入点?人们告诉我MAC地址是唯一的方法,但正如你在这里看到的那样,返回的BSSID略有不同。
答案 0 :(得分:2)
是BSSID是唯一的,但是您可以在RF域中为单个ESSID提供多个BSSID,即多个接入点,宣布相同的SSID 因此很可能不同的客户端设备将显示不同的BSSID,这似乎在您的情况下发生
答案 1 :(得分:2)
在回答你的问题之前,我想解释一下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,您可以猜测唯一标识接入点。