Enum ipnetwork::IpNetwork [] [src]

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

Represents a generic network range. This type can have two variants: the v4 and the v6 case.

Variants

Methods

impl IpNetwork
[src]

Constructs a new IpNetwork from a given IpAddr and a prefix denoting the network size. If the prefix is larger than 32 (for IPv4) or 128 (for IPv6), this will raise an IpNetworkError::InvalidPrefix error. Support for IPv6 is not complete yet.

Returns the IP part of a given IpNetwork

Returns the prefix of the given IpNetwork

Example

use ipnetwork::IpNetwork;

assert_eq!(IpNetwork::V4("10.9.0.32/16".parse().unwrap()).prefix(), 16u8);
assert_eq!(IpNetwork::V6("ff01::0/32".parse().unwrap()).prefix(), 32u8);

Returns the mask for this IpNetwork. That means the prefix most significant bits will be 1 and the rest 0

# Example ``` use ipnetwork::IpNetwork; use std::net::{Ipv4Addr, Ipv6Addr};

let v4_net: IpNetwork = "10.9.0.32/16".parse().unwrap(); assert_eq!(v4_net.mask(), Ipv4Addr::new(255, 255, 0, 0)); let v6_net: IpNetwork = "ff01::0/32".parse().unwrap(); assert_eq!(v6_net.mask(), Ipv6Addr::new(0xffff, 0xffff, 0, 0, 0, 0, 0, 0)); ```

Returns true if the IP in this IpNetwork is a valid IPv4 address, false if it's a valid IPv6 address.

# Example

use ipnetwork::IpNetwork;

 let v4: IpNetwork = IpNetwork::V4("10.9.0.32/16".parse().unwrap());
 assert_eq!(v4.is_ipv4(), true);
 assert_eq!(v4.is_ipv6(), false);

Returns true if the IP in this IpNetwork is a valid IPv6 address, false if it's a valid IPv4 address.

# Example

use ipnetwork::IpNetwork;

 let v6: IpNetwork = IpNetwork::V6("ff01::0/32".parse().unwrap());
 assert_eq!(v6.is_ipv6(), true);
 assert_eq!(v6.is_ipv4(), false);

Trait Implementations

impl Debug for IpNetwork
[src]

Formats the value using the given formatter.

impl Clone for IpNetwork
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Copy for IpNetwork
[src]

impl Hash for IpNetwork
[src]

Feeds this value into the given [Hasher]. Read more

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

impl PartialEq for IpNetwork
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Eq for IpNetwork
[src]

impl PartialOrd for IpNetwork
[src]

This method returns an ordering between self and other values if one exists. Read more

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl Ord for IpNetwork
[src]

This method returns an Ordering between self and other. Read more

impl FromStr for IpNetwork
[src]

Tries to parse the given string into a IpNetwork. Will first try to parse it as an Ipv4Network and if that fails as an Ipv6Network. If both fails it will return an InvalidAddr error.

Examples

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

let expected = IpNetwork::V4(Ipv4Network::new(Ipv4Addr::new(10, 1, 9, 32), 16).unwrap());
let from_cidr: IpNetwork = "10.1.9.32/16".parse().unwrap();
assert_eq!(expected, from_cidr);

The associated error which can be returned from parsing.

Parses a string s to return a value of this type. Read more

impl From<Ipv4Network> for IpNetwork
[src]

Performs the conversion.

impl From<Ipv6Network> for IpNetwork
[src]

Performs the conversion.

impl Display for IpNetwork
[src]

Formats the value using the given formatter. Read more