Crate iprange [−] [src]
iprange
is a library for managing IP ranges.
An IpRange
is a set of networks.
The type of the networks it holds is specified by the generics type of IpRange
.
You can add or remove an IpNet
from an IpRange
.
An IpNet
can be either an Ipv4Net
or an Ipv6Net
.
It also supports these useful operations:
Here is a simple example:
extern crate iprange; extern crate ipnet; use std::net::Ipv4Addr; use iprange::IpRange; use ipnet::Ipv4Net; fn main() { let ip_range: IpRange<Ipv4Net> = ["10.0.0.0/8", "172.16.0.0/16", "192.168.1.0/24"] .iter() .map(|s| s.parse().unwrap()) .collect(); assert!(ip_range.contains(&"172.16.32.1".parse::<Ipv4Addr>().unwrap())); assert!(ip_range.contains(&"192.168.1.1".parse::<Ipv4Addr>().unwrap())); }
Structs
IpRange |
A set of networks that supports various operations: |
IpRangeIter |
An iterator over the networks in an |
IpTrieNode |
Node of the inner radix trie. |
Ipv4PrefixBitIterator | |
Ipv4TraverseState | |
Ipv6PrefixBitIterator | |
Ipv6TraverseState |
Traits
IpNet |
An abstraction for IP networks. |
ToNetwork |
Anything that can be converted to |
TraverseState |
Used for internal traversing. |