# 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: ```shell-session sudo apt-get install cmake libnet1-dev ``` ## Install ### Clone the Repository (if applicable): ```bash git clone [repository-url] cd igmpgen ``` ### Build with CMake: Create a build directory: ```shell-session mkdir _build && cd _build ``` Run CMake and build the project: ```shell-session cmake .. cmake --build . ``` ### Install binaries ```shell-session cmake .. cmake --install . ``` ## Usage After building, you can run `igmpgen` with the necessary command-line arguments: ### Command-Line Arguments ```bash IGMP packet generator Usage: ./igmpgen [options] Options: -i Specify the network interface (e.g., eth0) -t Specify the IGMP packet type and version (e.g., 1.query) -g Specify the IGMP group (e.g., 224.0.0.1) -s Specify the source IP and port (e.g., 192.168.1.1:1234) -d Specify the destination IP and port (e.g., 224.0.0.2:5678) -n 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`: ```bash ./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.