Philip Manuel wrote:
if you control the app on the destinations, you could use multicast? Otherwise maybe broadcast on your LAN, all interested clients can pick up the packets.
Yes, these are the options, but what if I'm limited to unicasts? How do I take one packet, clone it into three, change destination address and send them out?
I don't think there is a generic tool for that, but it would be fairly simple to write a C program to do exactly what you want. If it is something like a video or audio stream you might get vlc (videolan client) to receive and convert to multicast.
If speed wasn't an issue couldn't you use socat, tee, pipes and fifo's and socat again to rebroadcast it ? i.e socat as the listener redirect to a fifo, have cat or socat as a listener to rebroadcast , use tee to send to another fifo and another socat instance to send to another host. Horrible I know but feasible.
Maybe - but but I'd expect tee to run buffered and you probably need to preserve the packet boundaries instead of just sending the stream. It might work to tell netcat to forward to a multicast group address if the end points can listen appropriately.