JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3067
  • Score
    100M100P100Q110181F
  • License MIT

A browser- and node-compatible library for parsing IPv6 addresses

Package Exports

  • ipv6
  • ipv6/lib/node/bigint

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ipv6) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

javascript-ipv6 Build Status

javascript-ipv6 is a library for manipulating IPv6 addresses in JavaScript.

Examples

For node:

var v6 = require('ipv6').v6;

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

console.log(address.isValid()); // Prints "true"

var teredo = address.teredo();

console.log(teredo.client4);    // Prints "157.60.0.1"

For a browser:

<!DOCTYPE html>
<html lang="en">
 <head>
  <title>Simple IPv6 test</title>

  <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

  <script type="text/javascript" src="/lib/jsbn.js"></script>
  <script type="text/javascript" src="/lib/jsbn2.js"></script>

  <script type="text/javascript" src="/lib/sprintf.js"></script>

  <script type="text/javascript" src="/ipv6/ipv6.js"></script>

  <script type="text/javascript">
   $(function() {
    var address6 = new v6.Address('a::b');

    $('#output').text(address6.canonicalForm());
   });
  </script>
 </head>

 <body>
  The canonical form of <code>a::b</code> is: <code id="output"></code>
 </body>
</html>

Current functionality

  • Parsing of most IPv6 notations
  • 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.js and the browser
  • Unit tests with node.js and Mocha

Used by

Future functionality

  • Investigate procstreams for the CLI tool
  • Base 64/85 encoding?
  • Reverse lookups? (Whether a domain name has IPv6 glue)

TODO

  • Documentation