IP-адрес - это просто идентификатор, то есть число.Используя этот номер, вы можете попытаться связаться с устройством, которое назначено этому номеру вашей сетевой инфраструктурой (например, сетевые маршрутизаторы).
Вы говорите, что у вас есть
IP-адресов, которыеЯ подключен к
Если вы уже подключены к IP-адресу устройства с использованием TCP, HTTP или любого другого протокола, который имеет долго работающие соединения, проще всего просто проверить, живо ли это соединение.Если вы можете хранить все ваши соединения в хеш-таблице (или в карте / словаре), и поиск будет очень быстрым.
Если вы на самом деле не подключены, хороший способ решить эту проблему - реализовать пинг / понг(aka ECHO ) схема: когда вы отправляете сетевой пакет (или запрос) с некоторыми данными и ожидаете, что данные вернутся к вам в течение разумного промежутка времени.Это может быть основано на ICMP или вашем собственном настраиваемом протоколе.
В качестве альтернативы вы можете реализовать схему «сердцебиения» (или поддерживать работу, см. Также: https://serverfault.com/questions/361071/what-is-the-difference-between-keepalive-and-heartbeat, Нужно ли сердцебиение, чтобы держать TCP-соединение открытым? , https://en.wikipedia.org/wiki/HTTP_persistent_connection), где каждое устройство отправляет периодический пакет "Я жив" с вашей стороны.