Отправка IGMP с PHP - PullRequest
       24

Отправка IGMP с PHP

1 голос
/ 22 марта 2010

Могу ли я отправлять IGMP-пакеты с помощью PHP-скрипта? IGMP даже на транспортном уровне?

Я просматривал некоторые пакеты JOIN, предназначенные для 224.0.0.251.

Я заметил, что в заголовке IP не назначен порт, но указаны MAC-адреса, что заставило меня поверить, что IGMP находится не на транспортном уровне, а на сетевом уровне. (надеюсь, я правильно сказал)

Может кто-нибудь уточнить это для меня? Я просто пытаюсь отправить пакет JOIN.

Я читал через rfc3376, чтобы попытаться найти ответ, но он просто показывает, как его создать. При попытке сделать это, я просто получаю поврежденный пакет.

Ответы [ 2 ]

1 голос
/ 27 апреля 2010

Традиционно вы используете опцию сокета IP_ADD_MEMBERSHIP (и соответствующий IP_DROP_MEMBERSHIP), чтобы присоединиться к многоадресной группе. Это приведет к тому, что операционная система сгенерирует пакет соединения IGMP.

Эти параметры устанавливаются с помощью IPPROTO_IP «уровень» на <a href="http://linux.die.net/man/3/setsockopt" rel="nofollow noreferrer">setsockopt</a>()

Согласно этой проблеме на сайте bugs.php.net эти опции по умолчанию недоступны. Однако на этой странице есть патч, который должен добавить их в вашу установку php.

0 голосов
/ 23 марта 2010

Вероятно, не с существующими средствами PHP.Существующие расширения позволяют вам получить доступ к уровню TCP / UDP, но не ниже.Вы, вероятно, могли бы использовать какой-либо инструмент командной строки, например nemesis-igmp из Nemesis project , чтобы сделать это.

...