JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3085
  • Score
    100M100P100Q110932F
  • 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

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');
var teredo = address.teredo();

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

For a browser:

<!DOCTYPE html>
<html lang="en">
 <head>
  <meta charset="utf-8" />

  <title>Simple IPv6 test</title>

  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/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 Vows

Future functionality

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

TODO

  • Documentation