Linux システムで開いているすべてのマルチキャスト ソケットを一覧表示しようとしていますか? netstat -g は、参加しているグループを一覧表示します。このために使用できる他のユーティリティはありますか?
助けてくれてありがとう。
さらに、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) サーバーである可能性が最も高いです。
その情報を提供できるツールはないと思います。
これは、マルチキャスト ソケットがアドレスにバインドされておらず、マルチキャスト グループ (IP_ADD_MEMBERSHIP) にのみ参加しているためです。ソケットは、同じインターフェース上の複数の異なるグループ、または異なるインターフェース上の同じグループに参加できるため、これらの相互参照を維持する意味はほとんどありません。カーネルによって公開される唯一の情報は /proc/net にあり、この場合は /proc/net/igmp (<- netstat -g) にあります。