32

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

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

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

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

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

4

3 回答 3

7

检查WifiP2pManagerrequestPeers

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

于 2015-01-17T15:33:08.737 回答
5

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

于 2017-08-10T10:42:19.987 回答
0

在我看来,您可以使用 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 Alliance 的 Wi-Fi Direct™ 认证计划)。使用这些 API,您可以在每个设备支持 Wi-Fi P2P 时发现并连接到其他设备,然后通过比蓝牙连接更远的距离通过快速连接进行通信. 这对于在用户之间共享数据的应用程序很有用,例如多人游戏或照片共享应用程序。” 块引用

于 2018-02-27T06:00:54.690 回答