回答:
あなたはこれを使用して行うことができます ip maddr add
コマンド。
構文
ip maddr [ add | del ] MULTIADDR dev STRING
説明
インターフェイス上で待機するために、スタティックリンクレイヤマルチキャストアドレスをアタッチ/デタッチします。プロトコルマルチキャストグループを静的に参加させることは不可能であることに注意してください。このコマンドはリンク層アドレスのみを管理します。
address LLADDRESS (default)
the link layer multicast address.
dev NAME
the device to join/leave this multicast address.
例
有線接続の例
ip maddr add ff02::fb dev eth0
無線接続の例:
ip maddr add 224.0.0.251 dev wlan0
ip maddr
とだけ動作します リンク層 マルチキャストアドレス プロトコル層 マルチキャストアドレス
ip maddr show
)
socatを使ってグループを購読することができます。これは、L2とL3の両方のサブスクリプションでうまく機能します。
socat STDIO UDP4-DATAGRAM:239.101.1.68:8889,\
ip-add-membership=239.0.1.68:10.100.201.1
これはグループを購読します 239.0.1.68
アドレス付きのインタフェースを使用する 10.100.201.1
。の UDP4-DATAGRAM:239.101.1.68:8889
bitは、socatがすべてを標準出力に出力するのを防ぐために、データを受信すべきではないダミーグループおよびUDPポートでパケットを待機します。代わりに、ペイロードをstdoutに転送したい場合は、そのグループとポートを、サブスクライブしたい実際のグループとポートに変更します。
複数のコンマ区切り ip-add-membership
ディレクティブは、同時に複数のグループを購読するように指定できます。 socatが終了すると、IGMPサブスクリプションもクリアされるようです。
「受信」部分を https://stackoverflow.com/questions/603852/multicast-in-python MCAST_PORTの定義と "sock.bind ..."の行を省略し、最後の行(print ...)をpassに置き換えます。それはあなたにダミーポートを読まずにSOCATの例に似たプログラムを与える。
"ff02" is invalid lladdr. Error: "ff02" is not a legal ll address.