🟢 Stable | A tool designed for generating various types of Internet Group Management Protocol (IGMP) packets on multicast networks.
Find a file
Glenn 571e4a48e7
Some checks reported errors
continuous-integration/drone/push Build was killed
continuous-integration/drone Build is passing
Merge branch 'release/v0.1.4'
2023-12-27 11:38:54 +01:00
misc doc: add manpage for igmpgen 2023-12-27 10:23:13 +01:00
src chore: re-indent code (linux style) 2023-12-27 10:24:06 +01:00
.drone.yml ci: fix publication 2023-12-27 11:38:48 +01:00
.gitignore chore: gitignore _build dir 2023-12-25 20:27:59 +01:00
CMakeLists.txt fix: change install type to man 2023-12-27 11:27:57 +01:00
LICENSE.txt chore: add LICENSE 2009-09-03 21:51:15 +02:00
Makefile chore: add Makefile rule to clean build dir 2023-12-27 10:43:06 +01:00
README.md doc: add header badges 2023-12-26 15:26:03 +01:00

Build Status License LGPL3.0-or-later Donate on patreon

IGMP Packet Generator

Overview

The IGMP Packet Generator (igmpgen) is a specialized tool designed for generating various types of Internet Group Management Protocol (IGMP) packets.

This tool is particularly useful for network administrators, developers, and researchers involved in testing and analyzing multicast network protocols.

Features

  • Support for Multiple IGMP Versions: Compatible with IGMPv1, IGMPv2, and IGMPv3.
  • Variety of IGMP Packets: Capable of generating Query, Report, Leave, and other IGMP packet types.
  • Customizable Packet Parameters: Allows setting of source/destination IPs, ports, and multicast groups.
  • Router Alert Option: Implements the Router Alert IP option (IPOPT_RA).

Requirements

  • Unix-like operating system.
  • libnet library
  • CMake for building the project.

For debian/ubuntu, simply type:

sudo apt-get install cmake libnet1-dev gcc rpm

Install

Clone the Repository (if applicable):

git clone https://code.apps.glenux.net/glenux/igmpgen
cd igmpgen

Build with CMake:

Run CMake and build the project:

cmake -S . -B _build
cmake --build _build

Install binaries

Either with your favorite packaging system

cpack

Or directly

cmake --install _build

Usage

After building, you can run igmpgen with the necessary command-line arguments:

Command-Line Arguments

IGMP packet generator

Usage: ./igmpgen [options]

Options:
  -i <interface>   Specify the network interface (e.g., eth0)
  -t <type>        Specify the IGMP packet type and version (e.g., 1.query)
  -g <group>       Specify the IGMP group (e.g., 224.0.0.1)
  -s <source>      Specify the source IP and port (e.g., 192.168.1.1:1234)
  -d <destination> Specify the destination IP and port (e.g., 224.0.0.2:5678)
  -n <number>      Specify delay between packets in seconds (optional)

Available IGMP packet types:
 - 1.query
 - 1.report
 - 1.dvmrp
 - 2.query
 - 2.report
 - 2.leave
 - 3.report

Example

Generate an IGMPv2 Membership Report for group 224.0.0.1 on eth0:

./igmpgen -i eth0 -g 224.0.0.1 -t 2.report

Contributing

Contributions to igmpgen are welcome. Please feel free to report issues, suggest features, or submit pull requests.

License

This project is licensed under the LGPL 3.0-or-later.