Question

IP multicast gives you the ability to send a single packet, which is picked up by multiple interfaces if they are subscribed to that multicast. If I understand it correctly.

Now if I want to use UDP, in combination with IP multicast, I am obligated to assign a port to listen to. But now I understand that I only receive UDP packets on a multicast specifically sent to that port. But I would like to intercept all UDP packets send to a certain multicast IP address, regardless of the port and receive them at my single socket.

Is something like this possible?

Preferably accompanied by a python example, if this is possible.

Was it helpful?

Solution

This isn't possible using the BSD socket API (which is roughly the API Python exposes in its socket module) - except by creating 2 ** 16 - 1 sockets and using them to bind to all ports.

It's possible using lower-level interfaces such as the TUN/TAP system offered by Linux.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top