## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----setup-------------------------------------------------------------------- library(raddr) ## ----------------------------------------------------------------------------- show <- function(literals) { p <- addr_parse(literals) out <- data.frame(input = literals) for (d in c("strict", "whatwg", "pton", "aton", "getaddrinfo", "curl")) { out[[d]] <- format(addr_reading(p, d)) } out } ## ----------------------------------------------------------------------------- show(c("0177.0.0.1", "010.0.0.1", "192.0.010.1", "192.0.048.1")) ## ----------------------------------------------------------------------------- show(c("10.1", "127.1", "2130706433", "4294967296", "1.4294967296")) ## ----------------------------------------------------------------------------- show(c("1.2.3.4.", "1.2.3.04", "::1.2.3.04")) ## ----------------------------------------------------------------------------- show(c("::1", "00001::", "12345::", "fe80:abcd::1", "1:2:3:4:5:6:7:8:")) ## ----------------------------------------------------------------------------- show(c("fe80::1%lo0", "fe80::1%25lo0", "fe80::1%lo0%en0")) ## ----------------------------------------------------------------------------- addr_zone(addr_pton("fe80::1%lo0")) addr_pton("fe80::1%lo0") == addr_pton("fe80::1%en0") addr_zone(addr_pton("fe80::1%25lo0")) ## ----------------------------------------------------------------------------- lpm <- as.data.frame(addr_classify(addr_pton(c("192.0.0.1", "192.0.0.9")))) lpm[, c("block", "name", "category", "globally_reachable")] ## ----------------------------------------------------------------------------- reg <- addr_registry() network <- addr_pton(sub("/.*$", "", reg$block)) closed <- !is.na(reg$globally_reachable) & !reg$globally_reachable open <- !is.na(reg$globally_reachable) & reg$globally_reachable reg[open & addr_within_any(network, reg$block[closed]), c("block", "name")] ## ----------------------------------------------------------------------------- zero <- as.data.frame(addr_classify(addr_pton(c("0.0.0.0", "0.1.2.3")))) zero[, c("block", "name", "category")] ## ----------------------------------------------------------------------------- sel <- !is.na(reg$globally_reachable) & !reg$globally_reachable & !is.na(reg$forwardable) & reg$forwardable reg[sel, c("block", "name", "globally_reachable", "forwardable")] ## ----------------------------------------------------------------------------- reg[is.na(reg$globally_reachable), c("block", "name", "footnotes", "termination_date")] ## ----------------------------------------------------------------------------- codes <- addr_codes_registry() codes[codes$layer == "classify", c("code", "strength", "rfc")] ## ----------------------------------------------------------------------------- addr_registry_version() addr_address_space_version() addr_transition_version() addr_category_version() ## ----------------------------------------------------------------------------- addr_registry_outdated()