Определить, поддерживает ли маршрутизатор Multicast - PullRequest
3 голосов
/ 29 января 2011

Есть ли способ программно определить, поддерживает ли маршрутизатор многоадресную передачу?Либо в простом C (BSD-сокеты), либо, желательно, более высокоуровневым способом в OSX (Objective-C / Cocoa).

Обновление: здесь я предполагаю, что у нас запущен только один процессопределить поддержку многоадресной рассылки (поэтому подходы, предполагающие использование нескольких клиентов на разных компьютерах, здесь не актуальны).

Ответы [ 2 ]

2 голосов
/ 29 января 2011

Вы можете прослушивать 224.0.0.1 в течение 125 с для запроса IGMP, но это не будет определять статическую многоадресную маршрутизацию.

Единственный верный способ - это передача на другой хост в другом сегменте локальной сети и тестированиеприсоединиться и отправить.Тем не менее, в зависимости от маршрутизации разреженного или плотного режима, это не немедленный ответ.

0 голосов
/ 31 января 2011

Лучший способ: у вас должно быть как минимум 2 узла с обеих сторон многоадресного маршрутизатора.Например:

ПК1 (Отправитель) ---- >> - Маршрутизатор ---- >> ----- ПК2 (Получатель)

На стороне отправителя (ПК1) использоватьvlc для отправки многоадресных пакетов на некоторый многоадресный IP, скажем, 235.1.1.1 Теперь на стороне получателя (PC2) вы можете использовать утилиту mcfirst .При правильном сочетании параметров вы можете узнать, может ли PC2 принимать многоадресные пакеты.

Выше работает как для IPv4, так и для IPv6.

...