Команда пинга сокетов? - PullRequest
1 голос
/ 10 июля 2009

Может кто-нибудь указать мне на учебник о том, как настроить метод ping с использованием сокетов C? Используя руководство beej, я смог установить соединение между двумя устройствами, но теперь я хочу настроить метод, который пингует все доступные устройства перед установкой фактического соединения. Я никогда не делал этого раньше, поэтому вы бы сделали что-то вроде настройки многоадресного сокета для широковещательной передачи пустого пакета данных, а затем чтобы получатель этого пустого пакета заполнил его своим IP-адресом и вернул этот полный пакет данных, чтобы есть адрес для начала соединения? Любые гиды / помощь будут оценены!

Ответы [ 2 ]

2 голосов
/ 10 июля 2009

Большинство текущих IP-стеков не будут отвечать на запрос ping на широковещательный адрес. Эта функция была использована для атак типа «отказ в обслуживании».

Реализация реальной реализации ping не будет легкой, я бы посоветовал вам использовать существующую библиотеку: http://www.kernelthread.com/projects/hanoi/html/icmp.html

Но вам придется вручную перебирать все IP-адреса в вашей подсети, чтобы они отвечали.

0 голосов
/ 10 июля 2009

Почему бы просто не взглянуть на источник пинга ;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...