IP 多播使您能够发送单个数据包,如果多个接口订阅了该多播,则该数据包会被多个接口接收。如果我理解正确的话。
现在如果我想使用 UDP,结合 IP 多播,我有义务分配一个端口来监听。但现在我知道我只接收专门发送到该端口的多播上的 UDP 数据包。但是我想拦截所有发送到某个多播 IP 地址的 UDP 数据包,无论端口如何,并在我的单个套接字上接收它们。
这样的事情可能吗?
如果可能的话,最好附上一个 python 示例。
IP 多播使您能够发送单个数据包,如果多个接口订阅了该多播,则该数据包会被多个接口接收。如果我理解正确的话。
现在如果我想使用 UDP,结合 IP 多播,我有义务分配一个端口来监听。但现在我知道我只接收专门发送到该端口的多播上的 UDP 数据包。但是我想拦截所有发送到某个多播 IP 地址的 UDP 数据包,无论端口如何,并在我的单个套接字上接收它们。
这样的事情可能吗?
如果可能的话,最好附上一个 python 示例。
使用 BSD 套接字 API(大致是 Python 在其模块中公开的 API)这是不可能的socket
——除非创建 2 ** 16 - 1 套接字并使用它们绑定到所有端口。
可以使用较低级别的接口,例如Linux 提供的TUN/TAP 系统。