MPING(1)
MPING(1) General Commands Manual MPING(1)

mping
a simple multicast ping program

mping [
-dhqrsv
] [
-c COUNT
] [
-i IFNAME
] [
-p PORT
] [
-t TTL
] [
-w SEC
] [
-W SEC
] [
GROUP
]

mping mping intends to be an easy to use and script friendly program. Similar to the standard ping(1) program, but unlike it, the response to multicast ping is sent by another mping. IT can be used to verify intended IGMP snooping functionality in layer-2 bridges (switches), as well as verify forwarding of multicast in static (SMCRoute) or dynamic (mrouted, pimd, or pimd-dense) multicast routing setups.
By default, mping starts in receiver mode, joining group 225.1.2.3, and for each received UDP packet from the sender, it is looped back. For unicast ping, this is handled by the TCP/IP stack. To run in sender mode, use the -s command line option. Remember to adjust the TTL value if you are in a routed setup, and to set the multicast interface with -i IFNAME, otherwise the unicast routing table is used by the kernel to select the outbound interface, which often is not what you want.

mping currently only supports any-source multicast, ASM (*,G), and is limited to IPv4.
mping does not create or send IGMP frames directly. It only asks the Linux kernel for groups from a specific interface, which is then converted to the IGMP v2 join messages, or IGMP v3 membership reports by the kernel.

On Linux systems you can change the IGMP version of an interface, and thus what type of packets the kernel generates, by writing to the file /proc/sys/net/ipv4/conf/eth0/force_igmp_version. E.g., to change eth0 to IGMPv2:
echo 2 | sudo tee /proc/sys/net/ipv4/conf/eth0/force_igmp_version

COUNT
Stop sending/receiving after COUNT number of packets. The sender mping has two modes of operation available. The default is to exit after COUNT number of packets have been sent. The other mode is to wait for COUNT packets to be recived. See -w option, below, for more information.
Enable debug messages.
Print a summary of the options and exit
IFNAME
Interface to use for sending/receiving multicast. The default is to automatically look up the default interface from the unicast routing table.
PORT
UDP port number to send/listen to, default: 4321
Quiet output, only startup message and summary lines are printed
Act as receiver, looping back packets to the sender, default: yes
Act as sender, sends packets to select groups, default: no
TTL
TTL to use when sending multicast packets, default: 1
Show version information
DEADLINE
Timeout, in seconds, before exiting, waiting for -c COUNT replies. If COUNT replies are received before the deadline, mping exits.
TIMEOUT
Timeout, in seconds, after the last received packet.

ping(1), mcjoin(1), nemesis(1)

Use the project's GitHub page to file bug reports, feature requests or patches (preferably as GitHub pull requests), or questions at ⟨https://github.com/troglobit/mping⟩

Originally based on an example from the book Multicast Sockets, by David Makofske and Kevin Almeroth. Since then completely rewritten and expanded on by Joachim Wiberg at GitHub.
August 30, 2021 Debian