netmask: Network mask

View source: R/network_mask.R

netmaskR Documentation

Network mask

Description

prefix_length(), netmask() and hostmask() extract different (but equivalent) representations of the network mask. They accept an ip_network or ip_interface vector.

The functions can also convert between these alternative representations. For example, prefix_length() can infer the prefix length from an ip_address vector of netmasks and/or hostmasks, while netmask() and hostmask() can accept a vector of prefix lengths.

Usage

prefix_length(x)

netmask(x, ...)

## S3 method for class 'numeric'
netmask(x, is_ipv6 = NULL, ...)

hostmask(x, ...)

## S3 method for class 'numeric'
hostmask(x, is_ipv6 = NULL, ...)

Arguments

x
  • An ip_network vector.

  • An ip_interface vector.

  • prefix_length(): An ip_address vector of netmasks and/or hostmasks. Ambiguous cases (all zeros, all ones) are treated as netmasks.

  • netmask() and hostmask(): An integer vector of prefix lengths.

...

Arguments passed to methods.

is_ipv6

A logical vector indicating whether to construct an IPv4 or IPv6 address. If NULL (the default), then IPv4 is preferred but an IPv6 address is constructed when x is too large for the IPv4 address space.

Value

  • prefix_length(): An integer vector

  • netmask(): An ip_address vector

  • hostmask(): An ip_address vector

See Also

max_prefix_length()

Examples

x <- ip_network(c("192.168.0.0/22", "2001:db00::0/26"))

prefix_length(x)

netmask(x)

hostmask(x)

# construct netmask/hostmask from prefix length
netmask(c(22L, 26L), c(FALSE, TRUE))

hostmask(c(22L, 26L), c(FALSE, TRUE))

# extract prefix length from netmask/hostmask
prefix_length(ip_address(c("255.255.255.0", "0.255.255.255")))

# invalid netmask/hostmask raise a warning and return NA
prefix_length(ip_address("255.255.255.1"))

ipaddress documentation built on Jan. 12, 2023, 9:06 a.m.