Skip to content

Releases: davidchall/ipaddress

ipaddress 1.0.2

02 Dec 03:47
Compare
Choose a tag to compare

Fix for CRAN checks.

ipaddress 1.0.1

04 Apr 15:00
Compare
Choose a tag to compare

Fix for CRAN checks.

ipaddress 1.0.0

12 Jan 15:38
Compare
Choose a tag to compare

To mark the release of ipaddress 1.0.0, some breaking changes were made to improve the interface for data analysis.

Breaking changes

  • Removed the multiple argument from ip_to_hostname() and hostname_to_ip() (#83).
    • ip_to_hostname() and hostname_to_ip() now always return one result per input (stored in a vector).
    • New ip_to_hostname_all() and hostname_to_ip_all() return all results per input (stored in a list of vectors).
  • subnets() now takes vector input and outputs a list of vectors (#83).
  • Some arguments must now be explicitly passed using the argument name:
    • The strict argument of ip_network().
    • The exploded argument of format.ip_address(), format.ip_network() and format.ip_interface().
    • The replace argument of sample_ipv4(), sample_ipv6() and sample_network().

New features

  • New country_networks() downloads IP networks registered to specific countries (#87).
  • Error formatting has been improved using {cli} (#86).

Minor improvements and fixes

  • The is_ipv6 argument of netmask() and hostmask() defaults to NULL. This option prefers an IPv4 mask, but creates an IPv6 mask as a fallback.
  • Renamed vignette("ipaddress-classes") to vignette("ip-data").
  • Renamed vignette("ipaddress-examples") to vignette("recipes").
  • Updated the iana_ipv4 dataset.
  • Tests now use {testthat} 3e.

ipaddress 0.5.6

11 Dec 18:05
Compare
Choose a tag to compare

Resolve CRAN check warnings about deprecated use of C++ function sprintf().

ipaddress 0.5.5

12 Aug 14:53
Compare
Choose a tag to compare

Resolve CRAN check notes about HTML5 by upgrading to latest {roxygen}.

ipaddress 0.5.4

14 Jan 05:12
Compare
Choose a tag to compare

Compatible with new compiler toolchain on Windows for R 4.2 (see announcement).

ipaddress 0.5.3

28 Jul 00:50
Compare
Choose a tag to compare

Hotfix for CRAN check warnings.

ipaddress 0.5.2

17 Jun 23:52
Compare
Choose a tag to compare
  • The base argument of ip_to_integer() is removed.

    • base = "dec" is still handled by ip_to_integer().
    • base = "bin" is still handled by the existing ip_to_binary() function.
    • base = "hex" is now handled by the new ip_to_hex() function.
  • ip_to_integer() and integer_to_ip() now use bignum::biginteger() vectors to store IP addresses as integers. Previously, these integers were stored in a character vector (because they were beyond the range of base R numeric types).

    • The BH package is no longer a dependency (C++ Boost headers were a heavy dependency).
    • The bignum package is now an optional dependency.
  • New ip_to_hex() and hex_to_ip() functions to encode and decode addresses as hexadecimal strings.

ipaddress 0.5.1

12 Sep 23:09
Compare
Choose a tag to compare
  • Addition/subtraction of large integers is now much faster (#64)
  • ip_to_bytes() now returns a list of raw vectors instead of a blob object (#65)
    • Result can still be converted using blob::as_blob()
    • Removes excessive blob package dependency
  • Refactored C++ code to reduce dependence on Asio library (#64)
    • Package developers can now use LinkingTo: ipaddress without LinkingTo: AsioHeaders

ipaddress 0.5.0

26 Aug 16:07
Compare
Choose a tag to compare

This release achieves feature parity with the Python ipaddress module (#46).

New features

  • Additional checks for reserved addresses/networks: is_private(), is_reserved(), is_site_local() (#49)
  • New is_global() checks if addresses or networks are not reserved (#49)
  • New collapse_networks() collapses contiguous and overlapping networks (#54)
  • New exclude_networks() removes networks from others (#59)
  • New reverse_pointer() returns the record used by reverse DNS (#57)
  • New datasets: iana_ipv4 and iana_ipv6 contain registries of allocated blocks (#55)
  • New bitwise shift operators: %<<% and %>>% (#52)
  • Reorganized C++ code to expose IpAddressVector and IpNetworkVector classes to other packages (use LinkingTo: AsioHeaders, ipaddress, Rcpp). This does not affect the public R interface. (#51)

Minor improvements and fixes

  • format.ip_address(), format.ip_network() and format.ip_interface() gain an exploded parameter to display leading zeros for IPv6 addresses (#56)
  • ip_to_integer() gains a base parameter to select between decimal, hexadecimal and binary outputs (#47)
  • Integer-like doubles are now accepted everywhere in place of an integer
  • Update vignette("ipaddress-examples") to use the fuzzyjoin package (#61)
  • Update vignette("ipaddress-examples") with how to randomly generate public IP addresses (#62)
  • Fixed comparison of ip_address() vectors to account for machine endianness (#53)
  • Comparison of ip_network() and ip_interface() vectors is now consistent with the Python ipaddress module
    • ip_network(): network address compared before prefix length
    • ip_interface(): network compared before host address