获取连接到网络的设备的详细信息

网络工程 无线的 ARP 网络发现
2022-02-11 00:44:48

我正在尝试检测网络摄像头是否已在 Android 应用程序上连接到我的网络。为此,我发现我需要 ping 网络上的每个 IP 以获取活动设备或以某种方式发送 ARP 请求。问题是这只能获取设备的 IP 和 MAC 地址,我想获取更多详细信息,例如制造商和型号。我怎样才能以编程方式做到这一点?

肯定有一些与网络相关的东西我不理解,因为这对于一些网络工具来说似乎不是问题,比如 Fing for Android,它们能够获取网络上每台设备的所有详细信息。他们是如何做到的呢?

我不需要代码答案,理论上的答案就足够了。

3个回答

您可以从OUI 数据库中找到 NIC 的供应商

您可以 ping 广播地址,而不是 ping 每一台设备,所有设备都会回复。例如,如果您在 192.168.0.0/24 网络上,您的广播地址将是 192.168.0.255。然后所有设备都会发送一个 ARP 回复。从这里您可以对相关 MAC 所绑定的特定 IP 地址运行端口扫描。如果您不知道 MAC 地址,则必须对每台回复的设备进行扫描。

Fing、Angry IP、netstat 和 arp -a 是很好的入门……根据您是否有权访问基础设施,您可以检查 dhcp 范围和发布……以及网络设备上的 CDP 或 LLDP。

虽然它很好!