列出多播套接字

时间:2013-04-09 03:16:25

标签: linux sockets multicast netstat

我想在linux系统上列出所有已打开的多播套接字? netstat -g列出了已加入的组。为此可以使用其他任何实用工具吗?

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:9)

除了netstat -g之外,您还可以使用它来查看绑定到多播地址的所有套接字:

netstat -anu|sort -nk4

这是所有UDP套接字的列表(无论是否为多播)。查找224.0.0.0到239.255.255.255范围内的所有地址。这些是绑定到多播地址的套接字,无论它们是否加入了多播组。这些接收此多播组的流量。

可是:

实际上,用于接收组播流量的UDP套接字通常绑定到0.0.0.0。这些可以接收所有单播和多播地址的UDP数据包,服务器通常会根据源IP地址进行一些额外的过滤。

因此,在上面的列表中,您可能还需要查看绑定到0.0.0.0的UDP套接字,例如0.0.0.0:5353,这很可能是mDNS(avahi,zeroconf)服务器。

答案 1 :(得分:1)

我认为没有一种工具能够为您提供这些信息。

原因是多播套接字未绑定到某个地址,它只参与多播组(IP_ADD_MEMBERSHIP)。套接字可以在同一个接口上连接多个不同的组,或者在不同的接口上连接相同的组,因此维护这些交叉引用几乎没有意义。内核公开的唯一信息是/ proc / net,在这种情况下是/ proc / net / igmp(< - netstat -g)。