有什么方法可以获取特定wifi路由器的唯一标识符吗?
我正在尝试编写一个Android应用,该应用需要知道它连接到哪个路由器。我知道android提供了一种获取当前连接的网络的BSSID的方法,但是令我惊讶的是,这并不是唯一的。
我发现在双频路由器上,即使两个设备在同一个SSID上,两个不同的设备也可能会获得两个不同的BSSID。
我可以获取其他任何参数来唯一标识我连接的wifi吗?如果可以的话,我想尝试一些第三方库,因为我可以肯定,Android打包的方法比给我BSSID更好。
编辑:我试图找出谁都将自己的家庭wifi(通过应用程序)设置为与我相同的Wi-Fi。每个用户都设置自己的“家庭Wi-Fi”,并将其保存在服务器上(mac地址是我要保存的地址)。然后,每个用户都可以查询谁都在其Wi-Fi上,以及他们当前是否在该Wi-Fi上连接。通过搜索与我连接的MAC地址相同的MAC地址,可以查询“谁在我的wifi上”。如果我的房子有双频,这将失败,因为它们可以连接到第二个频率(因此也可以连接到第二个MAC)。
最佳答案
假设getBSSID()
将为两个不同的频段返回两个不同的地址,这是正确的,因为它们实际上是两个不同的接入点,一个2.4 GHz和一个5 GHz,它们被简单地包装在同一包装中。我编写了一个快速应用程序,该应用程序获取并显示可以使用WifiInfo
类获得的所有可用字段。当我连接到接入点的2.4 GHz频段时,详细信息如下:
请注意,您可以告诉您已连接到2.4 GHz频段(“频率:2452”)。对5 GHz频段重复此过程将显示以下内容:
如您所见,两个不同频段的MAC地址仅相差一个数字;我不知道所有路由器是否都是这种情况。如果确实如此,则可以通过分析MAC地址(BSSID)和频率的组合来确定连接到哪个接入点。