如何从 Android 应用程序检测 WiFi 网络中连接的所有设备

IT小君   2021-10-21T03:02:59

我正在开发一个应用程序,我需要在其中扫描 WiFi 网络并显示所有连接设备的列表。

允许用户点击设备,应用程序应显示该特定设备的所有硬件信息。这里的硬件是指 - RAM、存储介质、存储容量、设备名称、设备 IP 地址等。

现在,这个设备可以是任何东西,比如 xbox、带有 Linux/Windows 的笔记本电脑、iPhone 之类的手机或任何基于 Andorid 的智能手机,甚至是打印机。

如何扫描 WiFi 网络并查询/检测连接到它的所有设备?

无论运行何种操作系统,我都需要使用哪些协议来获取特定设备中的硬件列表?

评论(3)
IT小君

检查requestPeersWifiP2pManager

根据文档,它寻找 PeerListListener,它返回WifiP2pDeviceList携带的WifiP2pDevice列表,携带有 deviceAddress、deviceName、primaryDeviceType、secondaryDeviceType、status 和其他属性。

2021-10-21T03:02:59   回复
IT小君

也许网络发现github 项目可以帮助你。它列出了所有连接到 WiFi 的用户的 IP 和 MAC 地址,甚至收集了一些信息,如开放端口、设备名称、ping 等。希望它有所帮助

2021-10-21T03:02:59   回复
IT小君

在我看来,您可以使用 Wi-Fi Peer-to-Peer

https://developer.android.com/guide/topics/connectivity/wifip2p.html

“Wi-Fi 点对点 (P2P) 允许具有适当硬件的 Android 4.0(API 级别 14)或更高版本的设备通过 Wi-Fi 直接相互连接,无需中间接入点(Android 的 Wi-Fi P2P 框架符合与 Wi-Fi 联盟的 Wi-Fi Direct™ 认证计划)。使用这些 API,当每个设备都支持 Wi-Fi P2P 时,您可以发现并连接到其他设备,然后通过比蓝牙连接远得多的距离的快速连接进行通信。这对于在用户之间共享数据的应用程序非常有用,例如多人游戏或照片共享应用程序。” 块引用

2021-10-21T03:03:00   回复