ipaddress provides data classes and functions for working with IP addresses and networks. Its interface is inspired by the Python ipaddress module.
Here are some of the features:
For data visualization of IP addresses and networks, check out the ggip package.
You can install the released version of ipaddress from CRAN with:
Or you can install the development version from GitHub:
# install.packages("remotes") remotes::install_github("davidchall/ipaddress")
ip_network() vectors either standalone or as
columns in a data frame.
library(dplyr) library(ipaddress) tibble( address = ip_address(c("192.168.0.1", "2001:db8::8a2e:370:7334")), network = ip_network(c("192.168.100.0/22", "2001:db8::/80")) ) #> # A tibble: 2 x 2 #> address network #> <ip_addr> <ip_netwk> #> 1 192.168.0.1 192.168.100.0/22 #> 2 2001:db8::8a2e:370:7334 2001:db8::/80
Input character vectors are validated as they are parsed. Invalid inputs
raise a warning and are replaced with
ip_address(c("255.255.255.255", "255.255.255.256")) #> Warning: Problem on row 2: 255.255.255.256 #> <ip_address> #>  255.255.255.255 <NA>
A variety of functions are provided to enable common tasks.
tibble(network = ip_network(c("192.168.100.0/22", "2001:db8::/80"))) %>% mutate( first = network_address(network), last = broadcast_address(network), ipv6 = is_ipv6(network) ) #> # A tibble: 2 x 4 #> network first last ipv6 #> <ip_netwk> <ip_addr> <ip_addr> <lgl> #> 1 192.168.100.0/22 192.168.100.0 192.168.103.255 FALSE #> 2 2001:db8::/80 2001:db8:: 2001:db8::ffff:ffff:ffff TRUE
Please note that the ipaddress project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.