ip-range
About
ip-range
is a dead simple and super flexable parser for IP ranges, written in Typescript. It supports both IPv4 and IPv6 in CIDR notation (192.168.1.0/24
) and hyphenated ranges (192.168.1.12-192.168.1.24
)
Installation
$ npm i @network-utils/ip-range
Usage
Example
import { parseRange, ipsBetween } from '@network-utils/ip-range'
const ipsFromCIDR = parseRange('192.168.1.120/29')
const ipsFromHyphenatedRange = parseRange('192.168.1.121-192.168.1.126')
const ipsFromRange = ipsBetween('192.168.1.121', '192.168.1.126')
const totallyWorks = parseRange(['192.168.1.120/29', ['10.0.0.2-10.0.0.8', '192.168.0.8-192.168.0.12']])
type iprange
A string or array of strings, recursive
type iprange = string | iprange[]
parseRange(range: iprange): string[]
Parses an ip range or an array of ip ranges into an array containing each ip within the range(s)
Throws an "InvalidRange"
error if range
is invalid
ipsBetween(firstIP: string, lastIP: string): string[]
Returns an array of every IP address between firstIP
and lastIP
(inclusive)
Throws an "InvalidRange"
error if firstIP
or lastIP
are not a valid IP address
Testing
$ git clone https://github.com/justintaddei/ip-range.git
$ cd ip-range
$ npm install
$ npm test
Related Packages
License
MIT