1

PHP スクリプトで IGMP パケットを送信できますか? IGMP はトランスポート層にもありますか?

224.0.0.251 宛ての JOIN パケットを調べていました。

IP ヘッダーにはポートが割り当てられていませんが、MAC アドレスが指定されていることに気付きました。これにより、IGMP はトランスポート層ではなくネットワーク層にあると思いました。(うまくいけば、私はそれを正しく言った)

誰かが私のためにこれを明確にすることができますか? JOIN パケットを送信しようとしています。

私は rfc3376 を読んで答えを見つけようとしていましたが、答えを構築する方法を示しているだけです。そうしようとすると、不正な形式のパケットが表示されます。

4

2 に答える 2

1

従来、ソケット オプションIP_ADD_MEMBERSHIP(および対応するIP_DROP_MEMBERSHIP) を使用して、マルチキャスト グループに参加していました。これにより、オペレーティング システムが IGMP Join パケットを生成するようになります。

これらのオプションは、IPPROTO_IP「レベル」を使用して設定されますsetsockopt()

bugs.php.net サイトのこの問題によると、これらのオプションはデフォルトでは使用できません。ただし、そのページには、それらを php インストールに追加するパッチがリストされています。

于 2010-04-27T06:44:21.060 に答える
0

おそらく既存のPHP手段ではありません。既存の拡張機能では、TCP/UDP レイヤーにアクセスできますが、その下にはアクセスできません。おそらく、 Nemesis プロジェクトの nemesis-igmp などのコマンドライン ツールを使用して実行できます。

于 2010-03-22T22:42:01.050 に答える