🟢 Stable | A tool designed for generating various types of Internet Group Management Protocol (IGMP) packets on multicast networks.
Go to file
2023-12-25 20:27:59 +01:00
src feat: auto-detect libnet 2023-12-24 20:27:59 +01:00
.gitignore chore: gitignore _build dir 2023-12-25 20:27:59 +01:00
CMakeLists.txt feat: auto-detect libnet 2023-12-24 20:27:59 +01:00
LICENSE.txt chore: add LICENSE 2009-09-03 21:51:15 +02:00
README.md doc: improve readme content 2023-12-24 20:27:59 +01:00

IGMP Packet Generator

Overview

The IGMP Packet Generator is a specialized tool designed for generating various types of Internet Group Management Protocol (IGMP) p ackets. This tool is particularly useful for network administrators, developers, and researchers involved in testing and analyzing ne twork protocols, multicast networks, and network security systems.

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

Install

Clone the Repository (if applicable):

git clone [repository-url]
cd igmpgen

Build with CMake:

Create a build directory:

mkdir _build && cd _build

Run CMake and build the project:

cmake ..
cmake --build .

Install binaries

cmake ..
cmake --install .

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.