TypeScript icon, indicating that this package has built-in type declarations

8.1.0 • Public • Published

travis codecov downloads npm snyk


ip-address is a library for validating and manipulating IPv4 and IPv6 addresses in JavaScript.

Migrating from 6.x to 7.x

ip-address was rewritten in TypeScript for version 7. If you were using version 6 you'll need to make these changes to upgrade:

  • Instead of checking isValid(), which has been removed, you'll need to use a try/catch if you're accepting unknown input. This made the TypeScript types substantially easier as well as allowed the use of an AddressError class which will contain a parseMessage if an error occurred in the parsing step.
  • Instead of using the error, parseError, and valid attributes you'll need to use the message and parseMessage of the thrown AddressError.


Documentation is available at ip-address.js.org.


import { Address6 } from 'ip-address';

const address = new Address6('2001:0:ce49:7601:e866:efff:62c3:fffe');

const teredo = address.inspectTeredo();

teredo.client4;    // ''


  • Usable via CommonJS or ESM
  • Parsing of all IPv6 notations
  • Parsing of IPv6 addresses and ports from URLs with Address6.fromURL(url)
  • Validity checking
  • Decoding of the Teredo information in an address
  • Whether one address is a valid subnet of another
  • What special properties a given address has (multicast prefix, unique local address prefix, etc.)
  • Number of subnets of a certain size in a given address
  • Display methods
    • Hex, binary, and decimal
    • Canonical form
    • Correct form
    • IPv4-compatible (i.e. ::ffff:
  • Works in node and the browser (with browserify)
  • ~1,600 test cases

Used by

Package Sidebar


npm i @laverdet/beaugunderson-ip-address

Weekly Downloads






Unpacked Size

232 kB

Total Files


Last publish


  • laverdet