Answers:
你可以使用 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侦听虚拟组和udp端口上的数据包,该端口不应接收任何数据以防止socat也将所有内容输出到stdout。相反,如果要将有效负载定向到stdout,请将该组和端口更改为要预订的实际组和端口。
多个逗号分隔 ip-add-membership
可以指定指令同时订阅多个组。当socat退出时,它似乎也清除了IGMP订阅。
使用“接收”部分 https://stackoverflow.com/questions/603852/multicast-in-python ,省略MCAST_PORT的定义和“sock.bind ...”行,并用pass替换最后一行(print ...)。这为您提供了类似于SOCAT示例的程序,而无需读取虚拟端口。
"ff02" is invalid lladdr. Error: "ff02" is not a legal ll address.