Sto cercando di elencare tutti i socket multicast aperti su un sistema Linux? netstat -g elenca i gruppi aggiunti però. C'è qualche altra utilità che posso usare per questo bene?zoccoli multicast
Grazie mille per l'aiuto.
Sto cercando di elencare tutti i socket multicast aperti su un sistema Linux? netstat -g elenca i gruppi aggiunti però. C'è qualche altra utilità che posso usare per questo bene?zoccoli multicast
Grazie mille per l'aiuto.
Non penso che ci sia uno strumento che possa darti queste informazioni.
Il motivo è che un socket multicast non è associato a un indirizzo, ma partecipa solo a un gruppo multicast (IP_ADD_MEMBERSHIP). Un socket può unire più gruppi diversi sulla stessa interfaccia, o lo stesso gruppo su interfacce diverse, quindi non avrebbe molto senso mantenere questi cross refences. L'unica informazione esposta dal kernel è in/proc/net, e in questo caso/proc/net/igmp (< - netstat -g).
Oltre a netstat -g
è possibile utilizzare questo per vedere tutte le prese che sono legati a un indirizzo multicast:
netstat -anu|sort -nk4
Questa è una lista di tutti i socket UDP (se multicast o meno). Cerca tutti gli indirizzi nell'intervallo da 224.0.0.0 a 239.255.255.255. Questi socket sono associati a indirizzi multicast, indipendentemente dal fatto che siano entrati o meno nel gruppo multicast. Questi riceveranno il traffico solo per questo gruppo multicast.
Ma:
In pratica socket UDP che vengono utilizzati per ricevere il traffico multicast di solito sono tenuti ad affrontare 0.0.0.0. Questi possono ricevere pacchetti UDP per tutti gli indirizzi unicast e multicast e il server di solito esegue alcuni filtri aggiuntivi in base all'indirizzo IP di origine.
Quindi in questa lista in alto si potrebbe voler guardare anche socket UDP vincolati a 0.0.0.0, ad esempio 0.0.0.0:5353 che è molto probabilmente il server mDNS (avahi, zeroconf).