Skip to main content

Crate philiprehberger_ip_utils

Crate philiprehberger_ip_utils 

Source
Expand description

IP address utilities — CIDR matching, subnet calculation, classification, and anonymization.

This crate provides tools for working with IPv4 and IPv6 addresses using only the standard library. Features include CIDR range parsing and matching, subnet calculations, IP classification (private, loopback, CGNAT, etc.), anonymization for GDPR compliance, and CIDR aggregation.

§Examples

use philiprehberger_ip_utils::{Cidr, IpClassify, anonymize};
use std::net::IpAddr;

let cidr = Cidr::parse("192.168.1.0/24").unwrap();
let ip: IpAddr = "192.168.1.100".parse().unwrap();
assert!(cidr.contains(ip));

assert!(ip.is_private());
assert!(!ip.is_global_ip());

let anon = anonymize(ip, 8);
assert_eq!(anon.to_string(), "192.168.1.0");

Structs§

Cidr
A CIDR range representing a network prefix.
CidrIter
Iterator over IPv4 addresses in a CIDR range.

Enums§

CidrError
Error type for CIDR parsing and construction.
IpClass
IP address classification categories.

Traits§

IpClassify
Extension trait for classifying IP addresses.

Functions§

aggregate
Merge overlapping or adjacent CIDRs into a minimal set.
anonymize
Anonymize an IP address by zeroing the last mask_bits bits.