Skip to content

Simple utility to convert either CIDR notation or two IP addresses to an array of the range of IP addresses

License

Notifications You must be signed in to change notification settings

JoeScho/get-ip-range

Repository files navigation

get-ip-range

All Contributors

Simple utility to convert either CIDR notation, a hyphenated IP range, or two IP addresses to an array of the range of IP addresses.


Build StatusISC License


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.

Contributors


Joe Schofield

💻

Miosame

💻

João Antunes

💻

Chingiz Toimbetov

💻

yaniv-checkmarx

🐛

Stanislav Sizonenko

🐛

About

Simple utility to convert either CIDR notation or two IP addresses to an array of the range of IP addresses

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published