[−][src]Crate ip_network_table
This crate provides storage and retrieval of IPv4 and IPv6 network prefixes.
Currently, it uses ip_network
crate, that provides IP network data structure and
treebitmap
as backend, that provides fast lookup times, and a small memory footprint.
Backend can be changed in future releases.
Examples
use std::net::{IpAddr, Ipv6Addr}; use ip_network::{IpNetwork, Ipv6Network}; use ip_network_table::IpNetworkTable; let mut table = IpNetworkTable::new(); let network = IpNetwork::new(Ipv6Addr::new(0x2001, 0xdb8, 0xdead, 0xbeef, 0, 0, 0, 0), 64).unwrap(); let ip_address = Ipv6Addr::new(0x2001, 0xdb8, 0xdead, 0xbeef, 0, 0, 0, 0x1); assert_eq!(table.insert(network, "foo"), None); // Get value for network from table assert_eq!(table.longest_match(ip_address), Some((network, &"foo")));
Structs
IpNetworkTable | Table holding IPv4 and IPv6 network prefixes with value. |