目标C - 检查IP地址是否为网络的一部分



如何在不搜索我连接到的所有IP地址的情况下检查具有特定IP地址的设备是否仍然是我网络的一部分。是否可以直接 ping 连接硬件的 IP 地址?

IP地址只是一个标识符,即一个数字。使用该号码,您可以尝试访问由网络基础结构(如网络路由器(分配给该号码的设备。

你说你有一些

我连接到的 IP 地址

如果您已经使用 TCP、HTTP 或任何其他具有长时间运行的连接的协议连接到设备的 IP 地址,最简单的方法是检查该连接是否处于活动状态。如果您可以将所有连接存储在哈希表(或地图/字典(中,并且搜索将非常快。

如果您没有真正连接,解决此问题的一个好方法是实施ping/pong(又名ECHO(方案:当您发送包含一些数据的网络数据包(或请求(并期望该数据在合理的时间间隔内返回给您时。这可能基于 ICMP 或您自己的自定义协议。

或者,您可以实现"心跳"方案(或保持活动状态,另请参阅:https://serverfault.com/questions/361071/what-is-the-difference-between-keepalive-and-heartbeat,我需要心跳才能保持TCP连接打开吗?,https://en.wikipedia.org/wiki/HTTP_persistent_connection(,其中每个设备都会定期发送"我还活着"数据包。

最新更新