igmpgen/README.md

109 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) 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:
```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.