Crate ipnet [−] [src]
Types for IPv4 and IPv6 network addresses.
This module provides types and methods for working with IPv4 and
IPv6 network addresses. It aims for alignment with the IpAddr
,
Ipv4Addr
, and Ipv6Addr
types in Rust's standard library.
The module includes some extensions to these IP address types for Add, Sub, BitAnd, and BitOr operations.
Organization
IpNet
represents IP network addresses of either IPv4 or IPv6.Ipv4Net
andIpv6Net
are respectively IPv4 and IPv6 network addresses.- The [
IpAdd
], [IpSub
], [IpBitAnd
], [IpBitOr
] traits extend theIpv4Addr
andIpv6Addr
types to include these operations. ipv6_addr_from_emu128
and [ipv6_addr_into_emu128
] functions convert the between the Ipv6Addr type and theemu128
type.emu128
is an emulated 128 bit unsigned integer implemented in this module using a struct of twou64
types. This is necessary because Rust'su128
type is not yet marked stable. This can be replaced whenu128
is stable.
TODO:
- Explore the possibility of representing IP network addresses as a
Range
using Rust'sRangeArgument
trait.RangeArgument
and many of the associatedRange
methods are still nightly-only experimental APIs.
Structs
AddrParseError |
An error which can be returned when parsing an IP network address. |
Ipv4Net |
An IPv4 network address. |
Ipv6Net |
An IPv6 network address. |
Enums
IpNet |
An IP network address, either IPv4 or IPv6. |
Traits
IpAdd | |
IpBitAnd | |
IpBitOr | |
IpSub |
Functions
ipv6_addr_from_emu128 |
Convert an emulated u128 to an Ipv6Addr. |
ipv6_addr_into_emu128 |
Convert an Ipv6Addr to an emulated u128. |