使用PHP发送IGMP

时间:2010-03-22 18:24:20

标签: php igmp

我可以用PHP脚本发送IGMP数据包吗? IGMP甚至在传输层上吗?

我正在查看一些发往224.0.0.251的JOIN数据包。

我注意到IP标头没有分配端口,但确实指定了MAC地址,这让我相信IGMP不在传输层上,而是在网络层上。 (希望我说对了)

有人可以为我澄清一下吗?我只是想发送一个JOIN包。

我正在通过rfc3376阅读以尝试找到答案,但它只是展示了如何构建答案。在尝试这样做时,我只是得到一个格式错误的数据包。

2 个答案:

答案 0 :(得分:1)

传统上,您将使用套接字选项IP_ADD_MEMBERSHIP(和相应的IP_DROP_MEMBERSHIP)加入多播组。这将触发操作系统生成IGMP加入数据包。

使用IPPROTO_IP“级别”设置这些选项至setsockopt()

根据bugs.php.net网站上的this问题,默认情况下这些选项不可用。但是,该页面上列出了一个补丁,应该将它们添加到您的php安装中。

答案 1 :(得分:0)

可能没有现有的PHP手段。现有扩展允许您访问TCP / UDP层,但不能访问下面。您可能可以使用一些命令行工具,例如来自Nemesis project的nemesis-igmp来执行此操作。