[][src]Enum ip_network::IpNetwork

pub enum IpNetwork {
    V4(Ipv4Network),
    V6(Ipv6Network),
}

Holds IPv4 or IPv6 network

Variants

Methods

impl IpNetwork
[src]

Constructs new IpNetwork based on IpAddr and netmask.

Examples

use std::net::{IpAddr, Ipv4Addr};
use std::str::FromStr;
use ip_network::{IpNetwork, Ipv4Network};

let network_address = IpAddr::from_str("192.168.1.0").unwrap();
let ip_network = IpNetwork::new(network_address, 24).unwrap();
assert_eq!(ip_network, IpNetwork::V4(Ipv4Network::new(Ipv4Addr::new(192, 168, 1, 0), 24).unwrap()));

Constructs new IpNetwork based on IpAddr and netmask with truncating host bits from given network_address.

Returns error if netmask is bigger than 32 for IPv4 and 128 for IPv6.

Examples

use std::net::{IpAddr, Ipv4Addr};
use ip_network::IpNetwork;

let network_address = IpAddr::V4(Ipv4Addr::new(192, 168, 1, 128));
let ip_network = IpNetwork::new_truncate(network_address, 24).unwrap();
assert_eq!(ip_network.network_address(), IpAddr::V4(Ipv4Addr::new(192, 168, 1, 0)));
assert_eq!(ip_network.netmask(), 24);

Returns network IP address.

Examples

use std::net::{IpAddr, Ipv4Addr};
use ip_network::IpNetwork;

let ip_network = IpNetwork::new(Ipv4Addr::new(192, 168, 1, 0), 24).unwrap();
assert_eq!(ip_network.network_address(), IpAddr::V4(Ipv4Addr::new(192, 168, 1, 0)));

Returns network mask as integer.

Examples

use std::net::{IpAddr, Ipv4Addr};
use ip_network::IpNetwork;

let ip_network = IpNetwork::new(Ipv4Addr::new(192, 168, 1, 0), 24).unwrap();
assert_eq!(ip_network.netmask(), 24);

Returns true if IpNetwork contains Ipv4Network struct.

Returns true if IpNetwork contains Ipv6Network struct.

Returns true if IpNetwork contains IpAddr. For different network type (for example IpNetwork is IPv6 and IpAddr is IPv4) always returns false.

Examples

use std::net::{IpAddr, Ipv4Addr, Ipv6Addr};
use ip_network::IpNetwork;

let ip_network = IpNetwork::new(Ipv4Addr::new(192, 168, 1, 0), 24).unwrap();
assert!(ip_network.contains(Ipv4Addr::new(192, 168, 1, 25)));
assert!(!ip_network.contains(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 1, 0, 0)));

Returns true if the network is part of multicast network range.

Returns true if this is a part of network reserved for documentation.

Returns true if this network is inside loopback address range.

Returns true if the network appears to be globally routable.

Trait Implementations

impl Ord for IpNetwork
[src]

Compares and returns the maximum of two values. Read more

Compares and returns the minimum of two values. Read more

impl PartialEq<IpNetwork> for IpNetwork
[src]

impl PartialEq<Ipv4Network> for IpNetwork
[src]

This method tests for !=.

impl PartialEq<Ipv6Network> for IpNetwork
[src]

This method tests for !=.

impl PartialEq<IpNetwork> for Ipv4Network
[src]

This method tests for !=.

impl PartialEq<IpNetwork> for Ipv6Network
[src]

This method tests for !=.

impl From<Ipv4Addr> for IpNetwork
[src]

Converts Ipv4Addr to IpNetwork with netmask 32.

impl From<Ipv6Addr> for IpNetwork
[src]

Converts Ipv46ddr to IpNetwork with netmask 128.

impl From<IpAddr> for IpNetwork
[src]

Converts IpAddr to IpNetwork with netmask 32 for IPv4 address and 128 for IPv6 address.

impl From<Ipv4Network> for IpNetwork
[src]

impl From<Ipv6Network> for IpNetwork
[src]

impl Clone for IpNetwork
[src]

Performs copy-assignment from source. Read more

impl Copy for IpNetwork
[src]

impl Eq for IpNetwork
[src]

impl PartialOrd<IpNetwork> for IpNetwork
[src]

impl Display for IpNetwork
[src]

Converts IpNetwork to string in format X.X.X.X/Y for IPv4 and X:X::X/Y for IPv6 (CIDR notation).

Examples

use std::net::Ipv4Addr;
use ip_network::{IpNetwork, Ipv4Network};

let ip_network = IpNetwork::V4(Ipv4Network::new(Ipv4Addr::new(192, 168, 1, 0), 24).unwrap());
assert_eq!(ip_network.to_string(), "192.168.1.0/24");

impl Debug for IpNetwork
[src]

impl FromStr for IpNetwork
[src]

The associated error which can be returned from parsing.

Converts string in format IPv4 (X.X.X.X/Y) or IPv6 (X:X::X/Y) CIDR notation to IpNetwork.

Examples

use std::net::Ipv4Addr;
use std::str::FromStr;
use ip_network::{IpNetwork, Ipv4Network};

let ip_network = IpNetwork::from_str("192.168.1.0/24").unwrap();
assert_eq!(ip_network, IpNetwork::V4(Ipv4Network::new(Ipv4Addr::new(192, 168, 1, 0), 24).unwrap()));

impl Hash for IpNetwork
[src]

Feeds a slice of this type into the given [Hasher]. Read more

Auto Trait Implementations

impl Send for IpNetwork

impl Sync for IpNetwork

Blanket Implementations

impl<T> From for T
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]