Simple utility to convert either CIDR notation, a hyphenated IP range, or two IP addresses to an array of the range of IP addresses.
$ npm i get-ip-range
- CIDR
"x.x.x.x/x"
- Range
"x.x.x.x-x.x.x.x"
- Two IPs
"x.x.x.x, x.x.x.x"
- CIDR
"x:x:x:x:x:x:x:x/x"
- Range
"::x:x:x-::x:x:x"
- Two IPs
"::x:x:x", "::x:x:x"
N.B. Shorthand IPv6 is supported
const getIPRange = require('get-ip-range');
const ipv4CIDR = getIPRange('192.168.1.134/29');
const ipv4Range = getIPRange('192.168.1.128-192.168.1.135');
const twoIPv4 = getIPRange('192.168.1.128', '192.168.1.135');
// All return:
//
// [
// '192.168.1.128',
// '192.168.1.129',
// '192.168.1.130',
// '192.168.1.131',
// '192.168.1.132',
// '192.168.1.133',
// '192.168.1.134',
// '192.168.1.135',
// ]
//
const ipv6CIDR = getIPRange('0:0:0:0:0:ffff:102:304/126');
const ipv6Range = getIPRange('::ffff:102:304-::ffff:102:307');
const twoIPv6 = getIPRange('::ffff:102:304', '::ffff:102:307');
// All return:
//
// [
// '::ffff:102:304',
// '::ffff:102:305',
// '::ffff:102:306',
// '::ffff:102:307',
// ]
//
Errors
If the supplied IP address(es) are invalid, the request will throw an error. Please handle errors appropriately.