开发者社区> 问答> 正文

在Wi-Fi 热点模式下,如何获取周围的打开wifi 的终端设备列表

stackoverflow 上看到一个 Android:Hotspot is not detecting all ...

Android 手机可以通过读取/proc/net/arp 文件获取设备列表,但是这些设备是需要成功连上wifi 的。Ubuntu 上的hostapd 也可以。看系统日志,终端设备的MAC 地址是终端设备主动连接之后, dnsmasq 进程获得的。

有没有办法, 获取不一定会连上热点的周围所有设备列表?就是说能否让AP 主动扫描设备?

如果Android 上直接有办法更好,毕竟不需要电源,使用方便。如果是其它平台,PC或者修改路由器的固件(如OpenWrt, Tomato)达到目标的办法或者思路, 也非常欢迎。

展开
收起
a123456678 2016-06-16 14:28:52 4149 0
2 条回答
写回答
取消 提交回答
  • 很有意思。你需要可能是扫描数据。换句话说,你需要 scan entry。
    这个问题就会变成,我有没有办法 拿到 scan entry

    毫无疑问,答案是 YES
    但是怎么拿呢,就要区分不通的芯片厂商了。
    一种简单的方式是,直接找到芯片的(Wi-Fi芯片)的命令行手册,查找里面的说明,是否有两条命令:
    一条是,开启扫描模式
    一条是,获取扫描表项。

    幸运的是,我知道,iwinfo 命令中,有一个 scan 参数可以进行扫描,可以间接达到你的目的。
    如果不支持 iwinfo,那么就重新编译固件,将这个命令编译进去(或者安装进去)

    如果上面的方式搞不定,你就要修改驱动代码,
    在 beacon 和 probe 的处理程序中,将 扫描的表项上报至用户态。这个会麻烦一点。

    2019-07-17 19:40:50
    赞同 展开评论 打赏
  • 只要有网络通信,wireshark 就可以听到数据,双方MAC 地址都是可见的。

    Android 平台上,也有 wireshark 的移植版, Shark for Root

    2019-07-17 19:40:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
手机QQ移动网络接入优化之路 立即下载
《虚拟配网调度员》 立即下载
云AP—开启企业WiFi的新零售时代 立即下载