Module std::net::ipnet

IP address and CIDR utilities.

Parse and inspect IP addresses, and perform CIDR subnet calculations.

Examples

import std::net::ipnet;

fn main() {
    if ipnet.is_valid("192.168.1.1") {
        if ipnet.is_private("192.168.1.1") {
            println("private IP");
        }
    }
    if ipnet.cidr_contains("10.0.0.0/8", "10.1.2.3") {
        println("in range");
    }
}

Contents

Functions

Function is_valid

pub fn is_valid(addr: String) -> bool

Test whether a string is a valid IP address (v4 or v6).

Function is_v4

pub fn is_v4(addr: String) -> bool

Test whether an IP address is IPv4.

Function is_v6

pub fn is_v6(addr: String) -> bool

Test whether an IP address is IPv6.

Function is_loopback

pub fn is_loopback(addr: String) -> bool

Test whether an IP address is a loopback address (e.g. 127.0.0.1, ::1).

Function is_private

pub fn is_private(addr: String) -> bool

Test whether an IP address is in a private range (e.g. 10.x, 192.168.x).

Function cidr_contains

pub fn cidr_contains(cidr: String, ip: String) -> bool

Test whether a CIDR network contains a given IP address.

Examples

ipnet.cidr_contains("10.0.0.0/8", "10.1.2.3")  // true
ipnet.cidr_contains("10.0.0.0/8", "172.16.0.1") // false

Function cidr_network

pub fn cidr_network(cidr: String) -> String

Return the network address of a CIDR block.

Examples

ipnet.cidr_network("192.168.1.0/24")  // "192.168.1.0"

Function cidr_broadcast

pub fn cidr_broadcast(cidr: String) -> String

Return the broadcast address of a CIDR block.

Examples

ipnet.cidr_broadcast("192.168.1.0/24")  // "192.168.1.255"

Function cidr_hosts

pub fn cidr_hosts(cidr: String) -> i64

Return the number of usable host addresses in a CIDR block.

Examples

ipnet.cidr_hosts("192.168.1.0/24")  // 254