J'utilise tcpdump pour capturer les paquets de multidiffusion et je devais coder un programme personnalisé pour rejoindre les flux de multidiffusion afin que tcpdump "voie" les paquets. Vous vous demandez simplement si Netcat ou d'autres applications peuvent effectuer cette fonction à la place?
7
"ff02" is invalid lladdr. Error: "ff02" is not a legal ll address.
ip maddr
ne fonctionne qu'avec couche de liaison adresses de multidiffusion et non couche de protocole adresses de multidiffusion.ip maddr show
)On peut utiliser socat pour s’abonner à des groupes. Cela fonctionne bien pour les abonnements L2 et L3:
Cela va s'abonner au groupe
239.0.1.68
en utilisant l'interface avec l'adresse10.100.201.1
. leUDP4-DATAGRAM:239.101.1.68:8889
bit écoute les paquets d’un groupe factice et d’un port udp qui ne doivent recevoir aucune donnée afin d’empêcher socat de tout afficher également sur stdout. Si, au lieu de cela, vous voulez diriger le contenu vers stdout, changez ce groupe et ce port pour qu'il devienne le groupe et le port réels auxquels vous souhaitez vous abonner.Multiple séparé par des virgules
ip-add-membership
Des directives peuvent être spécifiées pour s’abonner à plusieurs groupes en même temps. Lorsque socat se ferme, il semble également supprimer les abonnements IGMP.la source
En plus de
socat
réponse, voici une solution lourde - smcroute . Cette application fonctionne comme un démon et peut être contrôlée à la volée:la source
Utilisez la partie "Recevoir" dans https://stackoverflow.com/questions/603852/multicast-in-python , omettez la définition de MCAST_PORT et la ligne "sock.bind ..." et remplacez la dernière ligne (print ...) par pass. Cela vous donne un programme similaire à l'exemple SOCAT sans lire un port factice.
la source