Цель C - Проверка того, что IP-адрес является частью сети - PullRequest
0 голосов
/ 06 июня 2018

Как проверить, что устройство с определенным IP-адресом по-прежнему является частью моей сети без поиска всех IP-адресов, к которым я подключен.Можно ли пинговать IP-адрес подключенного оборудования напрямую?

1 Ответ

0 голосов
/ 06 июня 2018

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), где каждое устройство отправляет периодический пакет "Я жив" с вашей стороны.

...