I want to see which Multicast-Join-Reports fly through the network in which my host computer resides in. For that I've written a little TypeScript program, that joins the multicast group '224.0.0.22', which is defined in RFC3376 under 4.2.14 as the IP Destination for Multicast-Join-Reports. But I receive no requests even when I should, because I'am watching traffic via Wireshark and there Multicast-Join-Reports are send and received.
Edit 1: Attached is the receiving part:
const interfaces = os.networkInterfaces();
const IGMP_V3_REPORT_MULTICAST_ADDRESS = '224.0.0.22';
const socket = dgram.createSocket('udp4');
const ipv4Interface = interfaces['eth0'].find((i) => i.family === 'IPv4');
if (ipv4Interface) {
socket.on('error', (e: Error) => {
console.log(`${ifaceName}: socket error: ${e}`);
sockResults[index] = false;
});
socket.on('listening', () => {
const address = socket.address();
console.log(`${ifaceName}: listening on ${address.address}:${address.port}`);
console.log(`${ifaceName}: joining multicast group with address: ${IGMP_V3_REPORT_MULTICAST_ADDRESS} for local address: ${ipv4Interface.address}`);
socket.addMembership(IGMP_V3_REPORT_MULTICAST_ADDRESS, ipv4Interface.address);
})
socket.on('message', (msg, rinfo) => {
console.log(`${ifaceName}: got ${msg}`);
});
socket.bind(0);
setTimeout(() => {
console.log(`${ifaceName}: dropping multicast membership for ${IGMP_V3_REPORT_MULTICAST_ADDRESS}`);
socket.dropMembership(IGMP_V3_REPORT_MULTICAST_ADDRESS, ipv4Interface.address);
console.log(`${ifaceName}: closing socket`);
socket.close();
resolve();
}, 120 * 1000);
}