问题描述
我希望能够确定我的设备连接到我的网络中的哪个接入点(在一个 SSID 下具有多个接入点的网状网络)。我认为使用 traceroute
将是一个很好的解决方案,但如果我尝试对连接到与源设备不同的接入点的设备运行 traceroute
命令,请求将失败。
我想我的第一个问题是为什么这会失败,因为两个设备都连接到同一个网络,数据包不应该去:我的电脑 -> 网关 -> 第二个接入点 -> 目标设备? 其次,是否有另一种方法可以实现我更广泛的目标,即确定我的网络中的设备连接到哪个接入点?
更多有用的信息:
解决方法
我从未使用过 Eero,但由于其性质,traceroute 可能非常不可靠。
随着生存时间的增加,traceroute 发送数据包(第一个数据包的 ttl 为 1,第二个数据包的 ttl 为 2,等等)。并期望路由器将数据包发送回源,让源知道该数据包已过期。
如果您的网络全部为第 2 层(所有 aps 都处于桥接模式),则数据包不会被路由……并且 traceroute 不起作用(如果“所有设备都连接到同一网络”,则意味着同一子网,那么您的网络是第 2 层网络)。
Traceroute 失败还有其他原因,取决于是使用 ICMP 还是 UDP 数据包实现的,以及设备之间是否有任何防火墙规则 nat 等。
为了帮助您解决初始场景,找出设备连接位置的最可靠方法是获取每个 AP/BSSID 的设备列表。
我找到的最接近的是以下库,它可能会让你得到这样的列表: