An IPv4 address.
IPv4 addresses are defined as 32-bit integers in IETF RFC 791. They are usually represented as four octets.
IpAddr for a type encompassing both IPv4 and IPv6 addresses.
The size of an
Ipv4Addr struct may vary depending on the target operating
Ipv4Addr provides a
FromStr implementation. The four octets are in decimal
notation, divided by
. (this is called "dot-decimal notation").
Creates a new IPv4 address from four eight-bit octets.
The result will represent the IP address
An IPv4 address with the address pointing to localhost: 127.0.0.1.
pub const UNSPECIFIED: Self[src]
An IPv4 address representing an unspecified address: 0.0.0.0
An IPv4 address representing the broadcast address: 255.255.255.255
Returns the four eight-bit integers that make up this address.
pub const fn is_unspecified(&self) -> bool[src]
true for the special 'unspecified' address (0.0.0.0).
This property is defined in UNIX Network Programming, Second Edition, W. Richard Stevens, p. 891; see also ip7.
pub fn is_loopback(&self) -> bool[src]
true if this is a loopback address (127.0.0.0/8).
This property is defined by IETF RFC 1122.
pub fn is_private(&self) -> bool[src]
true if this is a private address.
The private address ranges are defined in IETF RFC 1918 and include:
pub fn is_link_local(&self) -> bool[src]
true if the address is link-local (169.254.0.0/16).
This property is defined by IETF RFC 3927.
The following return false:
- private addresses (see
- the loopback address (see
- the link-local address (see
- the broadcast address (see
- addresses used for documentation (see
- the unspecified address (see
is_unspecified()), and the whole 0.0.0.0/8 block
- addresses reserved for future protocols (see
18.104.22.168/32which are globally routable
- addresses reserved for future use (see
- addresses reserved for networking devices benchmarking (see
pub fn is_ietf_protocol_assignment(&self) -> bool[src]
Note that parts of this block are in use:
pub fn is_benchmarking(&self) -> bool[src]
true if this address part of the
198.18.0.0/15 range, which is reserved for
network devices benchmarking. This range is defined in IETF RFC 2544 as
198.19.255.255 but errata 423 corrects it to
pub fn is_reserved(&self) -> bool[src]
true if this address is reserved by IANA for future use. IETF RFC 1112
defines the block of reserved addresses as
240.0.0.0/4. This range normally includes the
255.255.255.255, but this implementation explicitly excludes it, since
it is obviously not reserved for future use.
As IANA assigns new addresses, this method will be updated. This may result in non-reserved addresses being treated as reserved in code that relies on an outdated version of this method.
pub fn is_multicast(&self) -> bool[src]
true if this is a multicast address (22.214.171.124/4).
Multicast addresses have a most significant octet between 224 and 239, and is defined by IETF RFC 5771.
pub fn is_broadcast(&self) -> bool[src]
true if this is a broadcast address (255.255.255.255).
A broadcast address has all octets set to 255 as defined in IETF RFC 919.
pub fn is_documentation(&self) -> bool[src]
true if this address is in a range designated for documentation.
This is defined in IETF RFC 5737:
- 192.0.2.0/24 (TEST-NET-1)
- 198.51.100.0/24 (TEST-NET-2)
- 203.0.113.0/24 (TEST-NET-3)
pub fn to_ipv6_compatible(&self) -> Ipv6Addr[src]
Converts this address to an IPv4-compatible IPv6 address.
a.b.c.d becomes ::a.b.c.d
pub fn to_ipv6_mapped(&self) -> Ipv6Addr[src]
Converts this address to an IPv4-mapped IPv6 address.
a.b.c.d becomes ::ffff:a.b.c.d
type Err = AddrParseError
The associated error which can be returned from parsing.
fn from_str(s: &str) -> Result<Ipv4Addr, AddrParseError>[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where1.3.0[src]
impl PartialOrd<IpAddr> for Ipv4Addr[src]
fn partial_cmp(&self, other: &IpAddr) -> Option<Ordering>[src]
impl PartialOrd<Ipv4Addr> for Ipv4Addr[src]
fn partial_cmp(&self, other: &Ipv4Addr) -> Option<Ordering>[src]
impl PartialOrd<Ipv4Addr> for IpAddr[src]
Auto Trait Implementations
impl RefUnwindSafe for Ipv4Addr
impl UnwindSafe for Ipv4Addr
type Owned = T
The resulting type after obtaining ownership.
fn clone_into(&self, target: &mut T)[src]
type Error = Infallible
The type returned in the event of a conversion error.