get-ip-range
v4.0.1
Published
Simple utility to convert either CIDR notation or two IP addresses to an array of the range of IP addresses
Downloads
19,781
Readme
get-ip-range
Simple utility to convert either CIDR notation, a hyphenated IP range, or two IP addresses to an array of the range of IP addresses.
Installation
$ npm i get-ip-range
Accepted formats
IPv4
- 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"
IPv6
- 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
Usage
import { getIPRange } from '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.
- If there are more than the default maximum range (10000) or the environment variable (MAX_RANGE) IPs in the range, it will throw an error.