Struct ip_network::Ipv4Network [−][src]
pub struct Ipv4Network { /* fields omitted */ }IPv4 Network
Methods
impl Ipv4Network[src]
impl Ipv4Networkpub fn from(
network_address: Ipv4Addr,
netmask: u8
) -> Result<Self, IpNetworkError>[src]
pub fn from(
network_address: Ipv4Addr,
netmask: u8
) -> Result<Self, IpNetworkError>Constructs new Ipv4Network based on Ipv4Addr and netmask.
Returns error if netmask is biger than 32 or if host bits are set in network_address.
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; let ip_network = Ipv4Network::from(Ipv4Addr::new(192, 168, 1, 0), 24).unwrap(); assert_eq!(ip_network.network_address(), Ipv4Addr::new(192, 168, 1, 0)); assert_eq!(ip_network.netmask(), 24);
pub fn from_truncate(
network_address: Ipv4Addr,
netmask: u8
) -> Result<Self, IpNetworkError>[src]
pub fn from_truncate(
network_address: Ipv4Addr,
netmask: u8
) -> Result<Self, IpNetworkError>Constructs new Ipv4Network based on Ipv4Addr and netmask with truncating host bits
from given network_address.
Returns error if netmask is biger than 32.
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; let ip_network = Ipv4Network::from_truncate(Ipv4Addr::new(192, 168, 1, 100), 24).unwrap(); assert_eq!(ip_network.network_address(), Ipv4Addr::new(192, 168, 1, 0)); assert_eq!(ip_network.netmask(), 24);
pub fn network_address(&self) -> Ipv4Addr[src]
pub fn network_address(&self) -> Ipv4AddrReturns network IP address (first address in range).
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; let ip_network = Ipv4Network::from(Ipv4Addr::new(192, 168, 1, 0), 24).unwrap(); assert_eq!(ip_network.network_address(), Ipv4Addr::new(192, 168, 1, 0));
pub fn get_network_address(&self) -> Ipv4Addr[src]
pub fn get_network_address(&self) -> Ipv4Addr: please use network_address instead
pub fn broadcast_address(&self) -> Ipv4Addr[src]
pub fn broadcast_address(&self) -> Ipv4AddrReturns broadcast address of network (last address in range).
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; let ip_network = Ipv4Network::from(Ipv4Addr::new(192, 168, 1, 0), 24).unwrap(); assert_eq!(ip_network.broadcast_address(), Ipv4Addr::new(192, 168, 1, 255));
pub fn get_broadcast_address(&self) -> Ipv4Addr[src]
pub fn get_broadcast_address(&self) -> Ipv4Addr: please use broadcast_address instead
pub fn netmask(&self) -> u8[src]
pub fn netmask(&self) -> u8Returns network mask as integer.
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; let ip_network = Ipv4Network::from(Ipv4Addr::new(192, 168, 1, 0), 24).unwrap(); assert_eq!(ip_network.netmask(), 24);
pub fn get_netmask(&self) -> u8[src]
pub fn get_netmask(&self) -> u8: please use netmask instead
pub fn full_netmask(&self) -> Ipv4Addr[src]
pub fn full_netmask(&self) -> Ipv4AddrReturns network mask as IPv4 address.
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; let ip_network = Ipv4Network::from(Ipv4Addr::new(192, 168, 1, 0), 24).unwrap(); assert_eq!(ip_network.full_netmask(), Ipv4Addr::new(255, 255, 255, 0));
pub fn get_full_netmask(&self) -> Ipv4Addr[src]
pub fn get_full_netmask(&self) -> Ipv4Addr: please use full_netmask instead
pub fn contains(&self, ip: Ipv4Addr) -> bool[src]
pub fn contains(&self, ip: Ipv4Addr) -> boolReturns true if given IP address is inside this network.
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; let ip_network = Ipv4Network::from(Ipv4Addr::new(192, 168, 1, 0), 24).unwrap(); assert!(ip_network.contains(Ipv4Addr::new(192, 168, 1, 2))); assert!(!ip_network.contains(Ipv4Addr::new(192, 168, 2, 2)));
ⓘImportant traits for Ipv4RangeIteratorpub fn hosts(&self) -> Ipv4RangeIterator[src]
pub fn hosts(&self) -> Ipv4RangeIteratorReturns iterator over host IP addresses in range (without network and broadcast address).
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; let ip = Ipv4Addr::new(192, 168, 1, 0); let mut hosts = Ipv4Network::from(ip, 24).unwrap().hosts(); assert_eq!(hosts.next().unwrap(), Ipv4Addr::new(192, 168, 1, 1)); assert_eq!(hosts.last().unwrap(), Ipv4Addr::new(192, 168, 1, 254));
pub fn supernet(&self) -> Self[src]
pub fn supernet(&self) -> SelfReturns network with smaller netmask by one.
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; let ip = Ipv4Addr::new(192, 168, 1, 0); let mut hosts = Ipv4Network::from(ip, 24).unwrap(); assert_eq!(hosts.supernet(), Ipv4Network::from(Ipv4Addr::new(192, 168, 0, 0), 23).unwrap());
ⓘImportant traits for Ipv4NetworkIteratorpub fn subnets(&self) -> Ipv4NetworkIterator[src]
pub fn subnets(&self) -> Ipv4NetworkIteratorReturns Ipv4NetworkIterator over networks with bigger netmask by one.
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; let ip = Ipv4Addr::new(192, 168, 1, 0); let mut iterator = Ipv4Network::from(ip, 24).unwrap().subnets(); assert_eq!(iterator.next().unwrap(), Ipv4Network::from(Ipv4Addr::new(192, 168, 1, 0), 25).unwrap()); assert_eq!(iterator.last().unwrap(), Ipv4Network::from(Ipv4Addr::new(192, 168, 1, 128), 25).unwrap());
ⓘImportant traits for Ipv4NetworkIteratorpub fn subnets_with_prefix(&self, prefix: u8) -> Ipv4NetworkIterator[src]
pub fn subnets_with_prefix(&self, prefix: u8) -> Ipv4NetworkIteratorReturns Ipv4NetworkIterator over networks with defined netmask.
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; let ip = Ipv4Addr::new(192, 168, 1, 0); let mut iterator = Ipv4Network::from(ip, 24).unwrap().subnets_with_prefix(25); assert_eq!(iterator.next().unwrap(), Ipv4Network::from(Ipv4Addr::new(192, 168, 1, 0), 25).unwrap()); assert_eq!(iterator.last().unwrap(), Ipv4Network::from(Ipv4Addr::new(192, 168, 1, 128), 25).unwrap());
pub fn is_loopback(&self) -> bool[src]
pub fn is_loopback(&self) -> boolReturns true if this network is inside loopback address range (127.0.0.0/8).
This property is defined by IETF RFC 1122.
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; let ip_network = Ipv4Network::from(Ipv4Addr::new(127, 0, 0, 0), 8).unwrap(); assert!(ip_network.is_loopback());
pub fn is_broadcast(&self) -> bool[src]
pub fn is_broadcast(&self) -> boolReturns true if this is a broadcast network (255.255.255.255/32).
A broadcast address has all octets set to 255 as defined in IETF RFC 919.
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; let ip_network = Ipv4Network::from(Ipv4Addr::new(255, 255, 255, 255), 32).unwrap(); assert!(ip_network.is_broadcast());
pub fn is_private(&self) -> bool[src]
pub fn is_private(&self) -> boolReturns true if this whole network range is inside private address ranges.
The private address ranges are defined in IETF RFC 1918 and include:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; let ip_network = Ipv4Network::from(Ipv4Addr::new(192, 168, 1, 0), 24).unwrap(); assert!(ip_network.is_private());
pub fn is_link_local(&self) -> bool[src]
pub fn is_link_local(&self) -> boolReturns true if the network is is inside link-local range (169.254.0.0/16).
This property is defined by IETF RFC 3927.
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; let ip_network = Ipv4Network::from(Ipv4Addr::new(169, 254, 1, 0), 24).unwrap(); assert!(ip_network.is_link_local());
pub fn is_multicast(&self) -> bool[src]
pub fn is_multicast(&self) -> boolReturns true if this whole network is inside multicast address range (224.0.0.0/4).
Multicast network addresses have a most significant octet between 224 and 239, and is defined by IETF RFC 5771.
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; let ip_network = Ipv4Network::from(Ipv4Addr::new(224, 168, 1, 0), 24).unwrap(); assert!(ip_network.is_multicast());
pub fn is_documentation(&self) -> bool[src]
pub fn is_documentation(&self) -> boolReturns true if this network 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)
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; let ip_network = Ipv4Network::from(Ipv4Addr::new(192, 0, 2, 0), 24).unwrap(); assert!(ip_network.is_documentation());
pub fn summarize_address_range(first: Ipv4Addr, last: Ipv4Addr) -> Vec<Self>[src]
pub fn summarize_address_range(first: Ipv4Addr, last: Ipv4Addr) -> Vec<Self>Trait Implementations
impl From<Ipv4Network> for IpNetwork[src]
impl From<Ipv4Network> for IpNetworkfn from(network: Ipv4Network) -> IpNetwork[src]
fn from(network: Ipv4Network) -> IpNetworkPerforms the conversion.
impl Clone for Ipv4Network[src]
impl Clone for Ipv4Networkfn clone(&self) -> Ipv4Network[src]
fn clone(&self) -> Ipv4NetworkReturns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)Performs copy-assignment from source. Read more
impl Debug for Ipv4Network[src]
impl Debug for Ipv4Networkfn fmt(&self, f: &mut Formatter) -> Result[src]
fn fmt(&self, f: &mut Formatter) -> ResultFormats the value using the given formatter. Read more
impl Eq for Ipv4Network[src]
impl Eq for Ipv4Networkimpl PartialEq for Ipv4Network[src]
impl PartialEq for Ipv4Networkfn eq(&self, other: &Ipv4Network) -> bool[src]
fn eq(&self, other: &Ipv4Network) -> boolThis method tests for self and other values to be equal, and is used by ==. Read more
fn ne(&self, other: &Ipv4Network) -> bool[src]
fn ne(&self, other: &Ipv4Network) -> boolThis method tests for !=.
impl Hash for Ipv4Network[src]
impl Hash for Ipv4Networkfn hash<__H: Hasher>(&self, state: &mut __H)[src]
fn hash<__H: Hasher>(&self, state: &mut __H)Feeds this value into the given [Hasher]. Read more
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher, 1.3.0[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher, Feeds a slice of this type into the given [Hasher]. Read more
impl PartialOrd for Ipv4Network[src]
impl PartialOrd for Ipv4Networkfn partial_cmp(&self, other: &Ipv4Network) -> Option<Ordering>[src]
fn partial_cmp(&self, other: &Ipv4Network) -> Option<Ordering>This method returns an ordering between self and other values if one exists. Read more
fn lt(&self, other: &Ipv4Network) -> bool[src]
fn lt(&self, other: &Ipv4Network) -> boolThis method tests less than (for self and other) and is used by the < operator. Read more
fn le(&self, other: &Ipv4Network) -> bool[src]
fn le(&self, other: &Ipv4Network) -> boolThis method tests less than or equal to (for self and other) and is used by the <= operator. Read more
fn gt(&self, other: &Ipv4Network) -> bool[src]
fn gt(&self, other: &Ipv4Network) -> boolThis method tests greater than (for self and other) and is used by the > operator. Read more
fn ge(&self, other: &Ipv4Network) -> bool[src]
fn ge(&self, other: &Ipv4Network) -> boolThis method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
impl Ord for Ipv4Network[src]
impl Ord for Ipv4Networkfn cmp(&self, other: &Ipv4Network) -> Ordering[src]
fn cmp(&self, other: &Ipv4Network) -> OrderingThis method returns an Ordering between self and other. Read more
fn max(self, other: Self) -> Self1.21.0[src]
fn max(self, other: Self) -> SelfCompares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self1.21.0[src]
fn min(self, other: Self) -> SelfCompares and returns the minimum of two values. Read more
impl Display for Ipv4Network[src]
impl Display for Ipv4Networkfn fmt(&self, fmt: &mut Formatter) -> Result[src]
fn fmt(&self, fmt: &mut Formatter) -> ResultConverts Ipv4Network to string in format X.X.X.X/Y (CIDR notation).
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; let ip_network = Ipv4Network::from(Ipv4Addr::new(192, 168, 1, 0), 24).unwrap(); assert_eq!(format!("{}", ip_network), "192.168.1.0/24");
impl FromStr for Ipv4Network[src]
impl FromStr for Ipv4Networktype Err = IpNetworkParseError
The associated error which can be returned from parsing.
fn from_str(s: &str) -> Result<Ipv4Network, IpNetworkParseError>[src]
fn from_str(s: &str) -> Result<Ipv4Network, IpNetworkParseError>Converts string in format X.X.X.X/Y (CIDR notation) to Ipv4Network.
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; use std::str::FromStr; let ip_network = Ipv4Network::from_str("192.168.1.0/24").unwrap(); assert_eq!(ip_network.network_address(), Ipv4Addr::new(192, 168, 1, 0)); assert_eq!(ip_network.netmask(), 24);
impl IntoIterator for Ipv4Network[src]
impl IntoIterator for Ipv4Networktype Item = Ipv4Addr
The type of the elements being iterated over.
type IntoIter = Ipv4RangeIterator
Which kind of iterator are we turning this into?
fn into_iter(self) -> Self::IntoIter[src]
fn into_iter(self) -> Self::IntoIterReturns iterator over all IP addresses in range including network and broadcast addresses.
Examples
use std::net::Ipv4Addr; use ip_network::Ipv4Network; let ip = Ipv4Addr::new(192, 168, 1, 0); let mut iter = Ipv4Network::from(ip, 24).unwrap().into_iter(); assert_eq!(iter.next().unwrap(), Ipv4Addr::new(192, 168, 1, 0)); assert_eq!(iter.next().unwrap(), Ipv4Addr::new(192, 168, 1, 1)); assert_eq!(iter.last().unwrap(), Ipv4Addr::new(192, 168, 1, 255));
Auto Trait Implementations
impl Send for Ipv4Network
impl Send for Ipv4Networkimpl Sync for Ipv4Network
impl Sync for Ipv4Network