/ip-address

💻 a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript

Primary LanguageTypeScriptMIT LicenseMIT

CircleCI codecov downloads npm snyk

ip-address

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

Upgrading from 9.x to 10.x

The dependency on jsbn was removed thanks to michal-kocarek. Thanks Michal! For clarity, all methods with BigInteger in the name were renamed to BigInt.

Breaking changes

  • #fromBigInteger() → #fromBigInt(); now returns a native BigInt
  • #bigInteger() → #bigInt(); now returns a native BigInt

Documentation

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

Examples

var Address6 = require('ip-address').Address6;

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

var teredo = address.inspectTeredo();

teredo.client4;    // '157.60.0.1'

Features

  • 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:192.168.0.1)
  • Works in node and the browser (with browserify)
  • ~1,600 test cases

Used by