ip-address is a JavaScript and TypeScript library for validating and manipulating IPv4 and IPv6 addresses, including CIDR subnets. It provides parsing, subnet membership and range checks, and conversions between common address forms (such as canonical/correct form, byte arrays, and BigInt), and it can run in both Node.js and the browser.
Project status
- Actively maintained, GitHub activity is very recent (last upstream push 2026-09-15, with multiple
v10.7.xupdates on the same day), indicating ongoing work rather than maintenance mode. - Apparent update cadence is fairly steady, with several updates clustered in late August 2026 (multiple
v10.4.xtov10.6.x) and continued into early September 2026 (v10.7.0throughv10.7.2), roughly every 1-3 weeks at the package level during this period.
AI summary generated
Recent updates
v10.7.2
v10.7.2 updates parsing for ARPA-form inputs to be more DNS-like. Specifically, Address4.fromArpa now accepts the in-addr.arpa suffix in any letter case and allows omitting the trailing root dot, with added tests and README updates.
v10.7.1
v10.7.1 primarily updates dev dependency versions in package-lock.json (js-yaml and brace-expansion). The code diff also includes behavioral changes around subnet containment across IPv4 and IPv6 families, plus earlier rejection of overly long address strings (with different error/diagnostic behavior).
v10.7.0
v10.7.0 adds new address-manipulation APIs, `offset()` and `nextNetwork()`, for both IPv4 (`Address4`) and IPv6 (`Address6`). It also expands `Address6.fromArpa()` parsing to support delegated reverse-zone inputs (prefix-length ip6.arpa names) and updates IPv6 end-address documentation.
Featuresv10.6.0
v10.6.0 introduces a new address predicate, `isGlobal()`, for both `Address4` and `Address6`, driven by the IANA Special-Purpose Address Registries. The change also adds new classification helpers (`isBenchmarking()`, `isReserved()`, and `isDocumentation()` where missing/expanded), updates constants used by type classifiers, and adds an IANA-derived test corpus to validate registry-aligned behavior.
Featuresv10.5.1
v10.5.1 makes correctness changes to IPv6 address classification, especially around what counts as link-local (RFC 4291) and private (including NAT64 local-use, RFC 8215). It also updates type detection so Teredo addresses in 2001::/32 are labeled as such. The release notes provided do not describe these behavioral changes.
v10.5.0
v10.5.0 focuses on making `Address6.fromURL` follow a graceful-failure contract when given non-IPv6 hosts (including tricky inputs that match the URL regex but cannot be parsed as IPv6). The release notes also indicate documentation fixes where the docs previously disagreed with the library behavior.
v10.4.0
v10.4.0 primarily modernizes the project CI by adding GitHub Actions coverage and tightening support for running the package on older Node runtimes. It also introduces stricter byte-array validation for IPv6 parsing, centralizing shared validation logic in src/common.ts.
Featuresv10.3.1
v10.3.1 includes no human-readable release note details beyond a changelog compare link. The actual code changes tighten parsing/validation for IPv4 dotted-quad inputs with leading-zero octets, and for IPv6 strings containing malformed or multiple subnet suffixes.
Breakingv10.3.0
This release primarily changes IPv6 handling in src/ipv6.ts, including stricter validation of URL port numbers and a change in the serialization behavior of Address6.toByteArray. It also updates the package version and refreshes build tooling dependencies in package-lock.json, notably bumping esbuild.
v10.2.2
v10.2.2 introduces a new helper, `isHostInSubnet`, intended to make address classification independent of the CIDR suffix on the input. The release also rewires most `isX` classification methods to use this new primitive instead of `isInSubnet`.
BreakingSecurityFeaturesv10.2.1
v10.2.1 of ip-address was released on 2026-07-25. The provided release notes do not include any change descriptions beyond a link to the full changelog diff, so no specific API, behavior, or compatibility changes can be confirmed from the notes alone.
v10.2.0
This release (v10.2.0, published 2026-05-01) has no release notes provided by the publisher. As a result, there is no documented information about new features, bug fixes, breaking changes, security updates, or migration requirements.
v10.1.1
v10.1.1 contains primarily internal hardening changes around how IPv6 address rendering functions generate HTML, plus related test coverage updates. The release notes section is empty, so these behavior changes are effectively undocumented from the publisher perspective.
Securityv10.1.0
Release v10.1.0 was published, but no release notes were provided by the publisher. As a result, there is no documented information available here about new features, bug fixes, security updates, or breaking changes.
v10.0.1
v10.0.1 appears to be a very small patch release. There are no release notes provided, and the only code change is a type-level adjustment in the IPv4 Address4.bigInt() method, plus version number bumps in package manifests.
Breakingv10.0.0
Release v10.0.0 makes a major internal change away from the jsbn BigInteger implementation to native BigInt. The diff shows multiple public API renames and return type changes across IPv4 and IPv6 address classes, plus some supporting utility additions and build configuration updates.
v9.1.0-0
Release v9.1.0-0 has no provided release notes. The diff shows a broad internal refactor replacing sprintf-js with native string/templating helpers across IPv4 and IPv6 formatting, alongside multiple dependency and tooling updates.
Breakingv9.0.5
Release v9.0.5 has no release notes provided. The code diff shows changes limited to build tooling and TypeScript configuration (package metadata version bump, build script, and tsconfig include/compiler options), with no functional runtime code changes shown.
v9.0.4
Release v9.0.4 appears to be a metadata-only update. The provided diff shows version bumps in package.json and package-lock.json with no other code or dependency changes visible in the modified hunks.
v9.0.3
Release v9.0.3 does not include any functional code changes. The only changes in the provided diff are version number updates in package.json and package-lock.json.