我正在为嵌入式设备开发一个应用程序,以检查本地网络(192.168.1.1 - 192.168.1.254)中存在的特定网络设备是否处于活动状态。
最初我使用 ping 来检查设备是否处于活动状态。如果我收到 ping 回复,则表示设备处于活动状态,否则表示设备处于非活动状态。但是后来我的一些设备阻止了 ICMP 请求。
- 我读了有关地址资源协议的文章,以及大多数网络设备如何不阻止 ARP 请求。因此我转向 arping 来检查活动状态。
- 当我对通过以太网连接到家庭网络的设备进行 ARP 连接时,我会收到该设备的单播回复
- 但是当我尝试使用通过 wifi 连接的设备执行相同操作时,arping 需要大约 5-10 分钟才能收到其 ARP 请求的第一个单播回复。有时即使我正在 arping 的设备已打开电源并连接到网络,我也不会收到任何回复
我在我的嵌入式设备上运行 Linux,并且该设备资源受限。
我的目的是检查通过以太网连接到我家网络的每个设备的运行状态。这些设备可能有防火墙,也可能没有。大多数设备运行 Linux,有些运行 Windows。
我是网络新手。任何关于如何理解 arping 的工作原理以及它是否适合我的用例的详细解释都将非常有帮助。
谢谢。