获取WiFi路由器的唯一标识符

有什么办法可以为特定的无线路由器获取任何唯一标识符吗?

我正在尝试编写一个需要了解连接到哪个路由器的Android应用程序。 我知道android提供了一种获取当前连接网络的BSSID的方法,但令我惊讶的是,这不是唯一的。
我发现在双频路由器上,两个不同的设备可能会获得两个不同的BSSID,即使它们在相同的SSID上。
是否有任何其他参数可以获取,可以唯一识别我连接的无线网络? 我很想尝试一些第三方库,如果那样会允许我的话,因为我相当确定Android没有提供比给我BSSID更好的方法。

编辑:我试图找出谁都设置了他们的家庭WiFi(通过应用程序)与我一样的Wi-Fi。 每个用户设置他们的'家庭Wi-Fi',它被保存在服务器上(mac地址就是我保存的)。 然后,每个用户都可以查询所有人都在使用Wi-Fi,并且他们目前是否在使用Wi-Fi连接。 “谁在我的wifi上”的查询是通过搜索与我连接的MAC地址相同的MAC地址来完成的。 如果我家有双频段,这会失败,因为它们可能连接到第二个频率(因此也就是第二个MAC)。


假设getBSSID()将为两个不同频段返回两个不同的地址,你是正确的,因为它们基本上是两个不同的接入点,一个2.4GHz和一个5GHz,简单地包装在同一个包中。 我编写了一个快速应用程序,可以获取并显示可能使用WifiInfo类获取的所有可用字段。 当我连接到我的接入点的2.4 GHz频段时,详情如下:

在这里输入图像描述

请注意,您可以告诉您已连接到2.4 GHz频段(“频率:2452”)。 用5 GHz频带重复此过程显示如下:

在这里输入图像描述

正如你所看到的,两个不同频段的MAC地址只相差一个数字; 我不知道这是否适用于所有路由器。 如果确实如此,那么您可以通过分析MAC地址(BSSID)和频率的组合来确定您连接的接入点。


可悲的是,没有保证唯一标识特定接入点的方法。 你可以通过使用SSID,MAC等来接近,但它不一定每次都有效,如果有人愿意,它仍然有可能欺骗它。

如果你想考虑不同的WiFi接口(1)(而不是支持它的物理设备),那么根据定义,MAC地址就是你需要的东西(禁止错误重新使用MAC的设备)。

(1)我使用“接口”一词,因为可以在同一接口上支持多个网络(即SSID)。 一个接口将有效地成为单一频道的单一频道。


只需使用AP的MAC地址即可。 (MAC地址是唯一的)

这里是:我可以在Android中找到我的接入点的MAC地址吗?

链接地址: http://www.djcxy.com/p/70127.html

上一篇: Fetch unique identifier for a WiFi router

下一篇: What protects a wireless network against fake ones with the same name?