商场里你刚走进一家店,手机还没连上WiFi,店里系统却已经知道有人进来了。这背后不是摄像头也不是门磁,而是基于WiFi的客流分析技术。
这玩意儿是怎么工作的?
现在的智能手机即使没连WiFi,也会不断搜索周围的网络信号。它们会主动发送探测请求(Probe Request),询问“有没有叫XX的WiFi?”这种信号是广播性质的,任何能接收到的设备都能捕获。
商家在店内布置一些WiFi探针设备,这些设备不提供上网服务,只负责监听周围手机发出的探测请求。通过记录设备的MAC地址、信号强度、出现时间,就能判断有多少人经过、停留多久、甚至是否回头客。
为了保护隐私,大多数系统会对MAC地址做哈希处理或随机化,不会直接存储真实硬件地址。比如用SHA-256加密后再存入数据库:
import hashlib
mac = "aa:bb:cc:11:22:33"
hashed_mac = hashlib.sha256(mac.encode()).hexdigest()
为什么你的客流数据突然断了?
某天门店的客流统计图变成一条直线,后台也没新数据进来。第一反应别急着重启服务器,先查这几项。
1. 探针设备掉线
很多探针是通过网线接到交换机上的。检查物理连接,有没有被老鼠咬断、施工误拔。用ping命令测试设备是否在线:
ping 192.168.1.105
如果超时,可能是设备死机或者供电异常。有些探针是POE供电,交换机端口供电开关有没有被误关?
2. IP冲突或配置丢失
设备重启后IP变了,或者和别的设备冲突,会导致数据传不到服务器。登录路由器查看DHCP分配列表,确认探针是否拿到正确IP。固定IP的设备最好在交换机侧做绑定。
3. 数据上传接口报错
探针能连上网络,但服务器收不到数据。这时候要看API接口状态。用curl模拟发一条测试数据:
curl -X POST http://api.dmai.local/v1/traffic \n-H "Content-Type: application/json" \n-d '{"device_id": "s001", "count": 5, "timestamp": "2024-04-05T10:30:00Z"}'
返回401说明认证失败,检查token有没有过期;返回500就得看服务器日志了。
4. 防火墙规则变了
公司IT上周升级了防火墙策略,把探针所在的VLAN outbound规则收紧了。结果设备连不上外网API。这种情况得找网络组开个白名单,放行目标IP和端口。
数据不准?也可能是环境问题
隔壁新开了一家奶茶店,他们用了大功率WiFi路由器,信号串到你店里,干扰了探针接收。或者你自己的探针装得太密集,互相打架。
建议用WiFi分析工具扫一下信道占用情况。Mac上可以用Airport Utility,Windows上用Acrylic WiFi,看看2.4GHz和5GHz频段哪个更干净。
还有种情况是顾客手机系统更新后,默认开启MAC地址随机化。iOS 14+和安卓10以上都会这么做,导致同一个用户每次出现都像新人。这时候只能靠行为模式识别来补救,比如信号轨迹、出现时间段等。
这套系统说白了就是让普通WiFi设备干监控的活。不出网也能统计人流量,成本比摄像头低,还不涉及人脸隐私。但一旦出问题,排查起来得软硬通吃,网络、代码、物理部署都得懂点。”}