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ソケット、たとえば、mDNS(avahi、zeroconf)サーバーである可能性が最も高い0.0.0.0:5353も確認することをお勧めします。
その情報を提供できるツールはないと思います。
その理由は、マルチキャストソケットがアドレスにバインドされておらず、マルチキャストグループ(IP_ADD_MEMBERSHIP)にのみ参加しているためです。ソケットは、同じインターフェイス上の複数の異なるグループ、または異なるインターフェイス上の同じグループに参加できるため、これらの相互参照を維持することはほとんど意味がありません。カーネルによって公開される唯一の情報は/ proc/netにあり、この場合は/ proc/net/igmp(<-netstat -g)です。