stackoverflow 上看到一个 Android:Hotspot is not detecting all ...
Android 手机可以通过读取/proc/net/arp 文件获取设备列表,但是这些设备是需要成功连上wifi 的。Ubuntu 上的hostapd 也可以。看系统日志,终端设备的MAC 地址是终端设备主动连接之后, dnsmasq 进程获得的。
有没有办法, 获取不一定会连上热点的周围所有设备列表?就是说能否让AP 主动扫描设备?
如果Android 上直接有办法更好,毕竟不需要电源,使用方便。如果是其它平台,PC或者修改路由器的固件(如OpenWrt, Tomato)达到目标的办法或者思路, 也非常欢迎。
很有意思。你需要可能是扫描数据。换句话说,你需要 scan entry。
这个问题就会变成,我有没有办法 拿到 scan entry
毫无疑问,答案是 YES
但是怎么拿呢,就要区分不通的芯片厂商了。
一种简单的方式是,直接找到芯片的(Wi-Fi芯片)的命令行手册,查找里面的说明,是否有两条命令:
一条是,开启扫描模式
一条是,获取扫描表项。
幸运的是,我知道,iwinfo 命令中,有一个 scan 参数可以进行扫描,可以间接达到你的目的。
如果不支持 iwinfo,那么就重新编译固件,将这个命令编译进去(或者安装进去)
如果上面的方式搞不定,你就要修改驱动代码,
在 beacon 和 probe 的处理程序中,将 扫描的表项上报至用户态。这个会麻烦一点。
只要有网络通信,wireshark 就可以听到数据,双方MAC 地址都是可见的。
Android 平台上,也有 wireshark 的移植版, Shark for Root
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。