igmpgen/README.md

106 lines
2.3 KiB
Markdown

# 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 <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`:
```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.