Releases: davidchall/ipaddress
ipaddress 1.0.2
Fix for CRAN checks.
ipaddress 1.0.1
Fix for CRAN checks.
ipaddress 1.0.0
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 fromip_to_hostname()
andhostname_to_ip()
(#83).ip_to_hostname()
andhostname_to_ip()
now always return one result per input (stored in a vector).- New
ip_to_hostname_all()
andhostname_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 ofip_network()
. - The
exploded
argument offormat.ip_address()
,format.ip_network()
andformat.ip_interface()
. - The
replace
argument ofsample_ipv4()
,sample_ipv6()
andsample_network()
.
- The
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 ofnetmask()
andhostmask()
defaults toNULL
. This option prefers an IPv4 mask, but creates an IPv6 mask as a fallback. - Renamed
vignette("ipaddress-classes")
tovignette("ip-data")
. - Renamed
vignette("ipaddress-examples")
tovignette("recipes")
. - Updated the
iana_ipv4
dataset. - Tests now use {testthat} 3e.
ipaddress 0.5.6
Resolve CRAN check warnings about deprecated use of C++ function sprintf()
.
ipaddress 0.5.5
Resolve CRAN check notes about HTML5 by upgrading to latest {roxygen}.
ipaddress 0.5.4
Compatible with new compiler toolchain on Windows for R 4.2 (see announcement).
ipaddress 0.5.3
Hotfix for CRAN check warnings.
ipaddress 0.5.2
-
The
base
argument ofip_to_integer()
is removed.base = "dec"
is still handled byip_to_integer()
.base = "bin"
is still handled by the existingip_to_binary()
function.base = "hex"
is now handled by the newip_to_hex()
function.
-
ip_to_integer()
andinteger_to_ip()
now usebignum::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()
andhex_to_ip()
functions to encode and decode addresses as hexadecimal strings.
ipaddress 0.5.1
- Addition/subtraction of large integers is now much faster (#64)
ip_to_bytes()
now returns a list of raw vectors instead of ablob
object (#65)- Result can still be converted using
blob::as_blob()
- Removes excessive blob package dependency
- Result can still be converted using
- Refactored C++ code to reduce dependence on Asio library (#64)
- Package developers can now use
LinkingTo: ipaddress
withoutLinkingTo: AsioHeaders
- Package developers can now use
ipaddress 0.5.0
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
andiana_ipv6
contain registries of allocated blocks (#55) - New bitwise shift operators:
%<<%
and%>>%
(#52) - Reorganized C++ code to expose
IpAddressVector
andIpNetworkVector
classes to other packages (useLinkingTo: AsioHeaders, ipaddress, Rcpp
). This does not affect the public R interface. (#51)
Minor improvements and fixes
format.ip_address()
,format.ip_network()
andformat.ip_interface()
gain anexploded
parameter to display leading zeros for IPv6 addresses (#56)ip_to_integer()
gains abase
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()
andip_interface()
vectors is now consistent with the Python ipaddress moduleip_network()
: network address compared before prefix lengthip_interface()
: network compared before host address