unstale

npm / ip-num

ip-num

What changed in ip-num 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-19.

7 breaking1 security10 new APIs and options2 behavior and defaults7 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

ip-num 127 changes

Breaking changes 7

  • Throws on non-positive input instead of misbehaving, with additional edge-case handling.

    1.6.2release notes

  • All four IPv4 entry points reject multi-digit octets starting with 0, preventing parser-differential SSRF and allow-list bypasses; a lone 0 remains valid.

    1.6.2release notes

  • The preinstall lifecycle script was removed, so installing ip-num no longer runs an install-time script on the consumer's machine.

    1.6.2release notes

  • Rejects IPv6 strings with multiple % separators instead of silently dropping the extra parts.

    1.6.1release notes

  • Removes a stale compiled module shipped in the npm package; users who deep-imported this undocumented path should switch to documented modules.

    1.6.0release notes

  • Removes a stale compiled module shipped in the npm package; users who deep-imported this undocumented path should switch to documented modules.

    1.6.0release notes

  • Rejects IPv6 CIDR notation without a prefix instead of misbehaving.

    1.6.0release notes

Security 1

New APIs and options 10

  • Adds hasEmbeddedRP().

    1.6.0release notes

  • Adds parsing support for IPv4-mapped IPv6 strings such as ::ffff:192.168.1.1.

    1.6.0release notes

  • Adds support for IPv6 link-local addresses with zone IDs such as fe80::1%eth0.

    1.6.0release notes

  • Adds a module for classifying IPv6 addresses.

    1.6.0release notes

  • Adds an isDocumentation() check.

    1.6.0release notes

  • Adds isLinkLocal() and related checks on IPv4 for IPv4/IPv6 parity.

    1.6.0release notes

  • Adds isLoopback() and related checks on IPv4 for IPv4/IPv6 parity.

    1.6.0release notes

  • Adds isMulticast() for IPv4 and IPv6.

    1.6.0release notes

  • Adds isPrivate() for both IPv4 and IPv6 via AbstractIPNum.

    1.6.0release notes

  • Adds isUnspecified() and related checks on IPv4 for IPv4/IPv6 parity.

    1.6.0release notes

Behavior and default changes 2

  • Recognizes RFC 9637's 3fff::/20 documentation space alongside 2001:db8::/32.

    1.6.1release notes

  • Adds checks for broadcast addresses.

    1.6.0release notes

Fixes and other changes 7

  • Accepts and rejects the same strings as the IPv4 parser.

    1.6.2release notes

  • Computes the correct CIDR prefix instead of using the host-bit count, fixing incorrect results for multi-address blocks.

    1.6.2release notes

  • Now matches the full RFC 4193 unique local range fc00::/7, so fc00::/8 addresses are no longer misclassified as Global Unicast.

    1.6.1release notes

  • Returns [false, ...] for an invalid zone id instead of throwing.

    1.6.1release notes

  • Corrects asdot+ ASN formatting to divide by 65536 instead of 65535.

    1.6.0release notes

  • Handles invalid IPv6 mask strings gracefully.

    1.6.0release notes

  • Correctly detects addresses constructed via fromBigInt.

    1.6.0release notes