【发布时间】:2015-04-17 07:46:28
【问题描述】:
有什么方法可以获得特定 wifi 路由器的唯一标识符吗?
我正在尝试编写一个需要知道它连接到哪个路由器的 Android 应用。我知道android提供了一种获取当前连接网络的BSSID的方法,但令我惊讶的是,这并不是唯一的。
我发现在双频路由器上,两个不同的设备可能会获得两个不同的 BSSID,即使它们使用相同的 SSID。
我可以获取任何其他参数来唯一标识我连接到的 wifi 吗?如果允许的话,我很想尝试一些第三方库,因为我很确定 Android 没有提供比给我 BSSID 更好的方法。
编辑:我试图找出谁都将他们的家庭 wifi(通过应用程序)设置为与我相同的 Wi-Fi。每个用户都设置了他们的“家庭 Wi-Fi”,该“家庭 Wi-Fi”保存在服务器上(我要保存的是 mac 地址)。然后每个用户都可以查询谁都在他们的 Wi-Fi 上,以及他们当前是否连接在那个 Wi-Fi 上。 “谁在我的 wifi 上”的查询是通过搜索与我连接的 MAC 地址相同的 MAC 地址来完成的。如果我家有双频段,这将失败,因为它们可以连接到第二个频率(因此是第二个 MAC)。
【问题讨论】:
-
为什么不直接使用接入点的名称?
-
两个不同的房子可以有相同的接入点名称(SSID)。所以这不是唯一的。例如,很多人通常将 SSID 保留为默认路由器名称,例如“linksys-123”。
-
好吧,我的错,我以为它会在“受控”环境中。但我认为使用接入点的“MAC”地址会起作用。
-
@Wildcopper 这就是我的想法。但是,在双频段路由器上,您可以有两个 MAC 地址,每个频段一个。好吧,至少当
getBSSID方法在连接到同一个 WiFi 的两部不同手机上返回两个不同的地址时,我能感知到这一点。 -
也许如果你解释了为什么你想这样做,我们可以建议替代方案来实现更高的目标。
标签: java android network-programming wifi router