该工具通过监控wifi信号来统计你周围有多少人
。
howmanypeoplearearound 使用智能手机的大致数量作为代理来计算附近的人数(因为现在大约70%的人都有智能手机)。通过嗅探WiFi探测请求,就可以确定一个手机距离电脑的大致位置。howmanypeoplearearound 的可能用途包括:用Raspberry Pis监视你家附近的人流量,看看你室友是否在家,等等。
本文基于Linux (Raspbian和Ubuntu)和Mac OS X进行测试。
监控网络的MAC地址可能是非法的,特别是在不属于你的网络上。请检查你的国家的法律(对于美国来说,在章节18,代码§2511)——讨论。
开始吧!
有关如何安装的视频演示,请查看PNPtutorials。
依赖关系
你的机器上必须安装Python 2.7或者最好是Python 3,并且还可以使用pip命令。
电脑支持监控模式的WiFi适配器
有许多的USB WiFi适配器支持监控模式。下面是一些比较流行的适配器列表:
USB Rt3070 $14
Panda PAU5 $14
Panda PAU6 $15
Panda PAU9 $36
Alfa AWUSO36NH $33
Alfa AWUS036NHA $40
Alfa AWUS036NEH $40
Sabrent NT-WGHU $15 (b/g) only
也就是说,你需要找到一个USB适配器,它带有以下芯片组之一: Atheros AR9271, Ralink RT3070, Ralink RT3572, 或者 Ralink RT5572
Mac OS X系统
在Linux 中安装tshark
然后对它进行更电脑新以便它可以以非root权限运行:
安装
运行
快速启动
只需要输入以下代码来运行
系统会提示你使用WiFi适配器进行扫描。确保使用支持“monitor”模式的适配器。
Docker替代方案
如果Docker是本地安装的,并且你想快速试用下howmanypeoplearearound,可以试试以下方法:
注意:此Docker替代方案在Ubuntu上可以使用,但在Mac OS x上不行。期待其他平台上的反馈,不胜感激。
选项
你可以修改扫描时间、指定适配器或使用一些命令行选项修改输出。
打印JSON格式
你可以生成一个JSON格式的输出来查看周围手机的种类:
rssi值越高表示越近(其中一个手机是我的,另外两个是我楼上的室友的)
一直运行
你可以添加--loop选项来让它一直运行下去,并添加一个输出文件test.json:
可视化
你可以使用以下命令通过浏览器查看循环执行的输出:
然后在浏览器中打开index.html文件,你就会看到一些图表。第一个图显示了人数随着时间的变化。在这里你可以看到人们在早上8点到9点左右开始到达工作地点(当工作开始的时候!)
第二个图显示了所看到的mac地址的RSSI值。你可以双击其中一个来突出显示该MAC的轨迹,就像我在这里为我的手机所做的那样(你可以看到我什么时候下班,什么时候上班!)
它是如何工作的?
howmanypeoplearearound 会计算手机在给定时间内发出的探测请求。可以使用tshark从启用监视模式的WiFi适配器“嗅探”这些探测请求。准确的计数主要依赖于每个人都有手机,而且扫描的时间足够长(1 - 10分钟),以便在手机ping到WiFi网络时捕获数据包(除非手机关机或禁用WiFi,否则这种情况每1 - 10分钟发生一次)。
这是我编写的另一个程序find-lf的简化版,它使用类似的想法和一组Raspberry Pis来定位附近手机的位置。
许可证
MIT许可
文中相关连接:
70% of people have smartphones nowadays——https://twitter.com/conradhackett/status/701798230619590656
Section 18 U.S. Code § 2511——https://www.law.cornell.edu/uscode/text/18/2511
discussion——https://github.com/schollz/howmanypeoplearearound/issues/4
PNPtutorials——https://youtu.be/dLzouUfJyMM?t=3m2s
tshark——https://www.wireshark.org/docs/man-pages/tshark.html
find-lf——https://github.com/schollz/find-lf
英文原文:https://github.com/schollz/howmanypeoplearearound
译者:一瞬
电脑