link-local-address

Crates.iolink-local-address
lib.rslink-local-address
version0.2.1
created_at2025-02-18 18:44:46.073207+00
updated_at2025-02-22 18:36:17.973535+00
descriptionA library for discovering and configuring link-local addresses with automatic IP conflict detection.
homepage
repositoryhttps://github.com/skullim/link-local-address
max_upload_size
id1560290
size56,299
(skullim)

documentation

README

link-local-address

link-local-address is a Rust library for managing link-local IPv4 addresses. It automatically scans for available addresses, avoiding conflicts and ensuring smooth local network communication.

Features

  • Dynamic assignment: Assigns link-local IPv4 addresses dynamically.

  • Network scanning: Scans the network to find free addresses.

  • ARP-based conflict prevention: Prevents conflicts using ARP-based probing.

  • Batch allocation: Supports batch allocation for efficient address management.

  • Asynchronous and configurable: Fully asynchronous and configurable.

  • Unix-only: This crate is designed for Unix-based systems (Linux, macOS, BSD).

Planned Features

  • IPv6 support: Future versions will extend functionality to support link-local IPv6 addresses.

When to Use

  • Setting up ad-hoc or peer-to-peer networks
  • Assigning IPs without relying on DHCP
  • Avoiding IP conflicts in local networking environments

CLI

This project includes a basic command-line interface that leverages the link-local-address library to scan for and assign link-local IPv4 addresses. The CLI allows users to dynamically assign addresses, perform network scans, and manage local network configurations without relying on DHCP.

Features

  • Scan for free addresses: The CLI tool scans the network to find available link-local IPv4 addresses.
  • Assign addresses: Assigns link-local IPv4 addresses to interfaces without DHCP.
  • Configurable parameters: Customize retries, timeouts, and batch sizes via command-line arguments.

The source code for the CLI tool can be found in the following file.

License

Licensed under either of

Commit count: 24

cargo fmt