
















这功能我们之前还真做过。
先说随机 mac 的问题,默认情况下不少设备在 SSID 不变,且没有执行“忘记网络”然后重新“加入网络”操作的情况下,mac 地址是不会变的(不确定现在情况是否有变化),不过一般的手机、笔记本都可以设置是否使用随机 mac 。所以靠 mac 唯一确定设备也算基本可行。
wifi 连接由于稳定性、低功耗、漫游等原因,随时都可能会自动断开,然后过一段时间又重连,于是你就会收到大量的“离开”、“加入”事件。为了处理这种情况,就不得不加入延时,一段时间之后没有新的事件产生才推送最后一个事件,但是一段时间到底取多长,又是一个新的问题,短了效果不好,长了实时性太差。
再说“离开”这个事件,大多数“离开”是设备逐渐远离路由器,信号逐渐变弱,直到最后没法通信,因此路由器根本无法从通信协议层面感知“离开”这个事情,只能等超时,这个超时一般是 5 分钟(好像是 wifi 规范规定的?),甚至有的 wifi 驱动有 bug ,设备离开之后会永远在线。
至于用 ping 的话,也有不靠谱的地方,笔记本可能防火墙禁 ping (这个倒是可以自己设置); iOS 设备熄屏期间也不能 ping 通(这个没看到设置的地方,不过我也没专门去找过)。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。