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

mping
a simple multicast ping program

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

mping aspires to be an easy to use and script friendly program with support for both IPv4 and IPv6. 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/MLD snooping functionality in any layer-2 bridges (switches), as well as verify forwarding of multicast in static (SMCRoute) or dynamic (mrouted, pimd, pimd-dense, or pim6sd) 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).
mping does not create or send IGMP/MLD frames directly. Instead, it asks the kernel for groups from a specific interface, which is then converted to the IGMPv2/MLDv1 join messages, or IGMPv3/MLDv2 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

Use IPv6 instead of IPv4. Defaults to group ff2e::42, unless an IPv6 multicast grop is the first non-option argument. The optional group argument overrides the address family, so if an IPv4 group is detected this option is ignored
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.
May 12, 2022 Debian