javascript-ipv6 is a library for manipulating IPv6 addresses in JavaScript.
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>
- 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
- Investigate
procstreams
for the CLI tool - Base 64/85 encoding?
- Reverse lookups? (Whether a domain name has IPv6 glue)
- Documentation