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

时间:2018-06-06 15:38:13

标签: ios objective-c ip-address

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

1 个答案:

答案 0 :(得分:0)

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

你说你有一些

  

我连接的IP地址

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

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

或者你可以实现心跳"心跳"方案(或保持活着,另请参阅:https://serverfault.com/questions/361071/what-is-the-difference-between-keepalive-and-heartbeatDo I need to heartbeat to keep a TCP connection open?https://en.wikipedia.org/wiki/HTTP_persistent_connection),其中每个设备发送一个周期性的"我活着"包在你身边。