11

Linux システムで開いているすべてのマルチキャスト ソケットを一覧表示しようとしていますか? netstat -g は、参加しているグループを一覧表示します。このために使用できる他のユーティリティはありますか?

助けてくれてありがとう。

4

2 に答える 2

12

さらに、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) サーバーである可能性が最も高いです。

于 2014-02-27T16:10:05.170 に答える
4

その情報を提供できるツールはないと思います。

これは、マルチキャスト ソケットがアドレスにバインドされておらず、マルチキャスト グループ (IP_ADD_MEMBERSHIP) にのみ参加しているためです。ソケットは、同じインターフェース上の複数の異なるグループ、または異なるインターフェース上の同じグループに参加できるため、これらの相互参照を維持する意味はほとんどありません。カーネルによって公開される唯一の情報は /proc/net にあり、この場合は /proc/net/igmp (<- netstat -g) にあります。

于 2014-02-27T16:00:19.790 に答える