Expand description
Types for IPv4 and IPv6 network addresses.
This module provides types and useful methods for working with IPv4
and IPv6 network addresses, commonly called IP prefixes. The new
IpNet, Ipv4Net, and Ipv6Net types build on the existing
IpAddr, Ipv4Addr, and Ipv6Addr types already provided in
Rust’s standard library and align to their design to stay
consistent.
The module also provides the IpSubnets, Ipv4Subnets, and
Ipv6Subnets types for iterating over the subnets contained in
an IP address range. The IpAddrRange, Ipv4AddrRange, and
Ipv6AddrRange types for iterating over IP addresses in a range.
And traits that extend Ipv4Addr and Ipv6Addr with methods for
addition, subtraction, bitwise-and, and bitwise-or operations that
are missing in Rust’s standard library.
The module only uses stable features so it is guaranteed to compile using the stable toolchain.
Organization
IpNetrepresents an IP network address, either IPv4 or IPv6.Ipv4NetandIpv6Netare respectively IPv4 and IPv6 network addresses.IpSubnets,Ipv4Subnets, andIpv6Subnetsare iterators that generate the smallest set of IP network addresses bound by an IP address range and minimum prefix length. These can be created using their constructors. They are also returned by thesubnets()methods and used within theaggregate()methods.IpAddrRange,Ipv4AddrRange, andIpv6AddrRangeare iterators that generate IP addresses. These can be created using their constructors. They are also returned by thehosts()methods.- The
IpAdd,IpSub,IpBitAnd,IpBitOrtraits extend theIpv4AddrandIpv6Addrtypes with methods to perform these operations.
Serde support
This library comes with support for serde but
it’s not enabled by default. Use the serde feature to enable.
[dependencies]
ipnet = { version = "2", features = ["serde"] }For human readable formats (e.g. JSON) the IpNet, Ipv4Net, and
Ipv6Net types will serialize to their Display strings.
For compact binary formats (e.g. Bincode) the Ipv4Net and
Ipv6Net types will serialize to a string of 5 and 17 bytes that
consist of the network address octects followed by the prefix
length. The IpNet type will serialize to an Enum with the V4 or V6
variant index prepending the above string of 5 or 17 bytes.
Structs
An error which can be returned when parsing an IP network address.
An Iterator over a range of IPv4 addresses.
An IPv4 network address.
An Iterator that generates IPv4 network addresses.
An Iterator over a range of IPv6 addresses.
An IPv6 network address.
An Iterator that generates IPv6 network addresses.
An error which can be returned when the prefix length is invalid.
Enums
An Iterator over a range of IP addresses, either IPv4 or IPv6.
An IP network address, either IPv4 or IPv6.
An Iterator that generates IP network addresses, either IPv4 or
IPv6.