ic

ip-cidr

Module for working with CIDR

Showing:

Popularity

Downloads/wk

24.7K

GitHub Stars

28

Maintenance

Last Commit

25d ago

Contributors

6

Package

Dependencies

2

License

MIT

Type Definitions

Built-In

Tree-Shakeable

No?

Categories

Readme

Install

npm install ip-cidr

About

Module for working with CIDR (v4, v6). Based on ip-address.

Example

const IPCIDR = require("ip-cidr");
const BigInteger = require("jsbn").BigInteger;
const address = "50.165.190.0/23";

if(!IPCIDR.isValidAddress(address)) {
  return;
}

const cidr = new IPCIDR(address); 

// get start ip address as a string
cidr.start(); 

// get end ip address as a big integer
cidr.end({ type: "bigInteger" }); 

// do something with each element of the range  
cidr.loop(ip => console.log(ip), { type: "addressObject" });

// get an array of all ip addresses in the range as a big integer;
cidr.toArray({ type: "bigInteger" }); 

// get an array by chunks using from/limit
cidr.toArray({ from: 1, limit: new BigInteger('2') });

// get an array by chunks using from/to
cidr.toArray({ from: new BigInteger('1'), to: 3 });
cidr.toArray({ from: '50.165.190.1', to: '50.165.190.3' });

// get an array of start and end ip addresses as a string [startIpAsString, endIpAsString]
cidr.toRange(); 

Client side

Load /dist/ip-cidr.js as a script and you can get the library in window.IPCIDR

API

.formatIP(address, [options])

to return an "ip-address" module object in the necessary format

.isValidAddress(address)

to check the address is valid or not

.createAddress(address)

to create an object address from the string

.prototype.contains(address)

to check the address belongs to the range

.prototype.start([options])

to get the start ip address

.prototype.end([options])

to get the end ip address

.prototype.toString()

to convert the cidr to a string like "50.165.190.0/23"

.prototype.toRange([options])

to convert the cidr to an array with start and end ip addresses [startIp, endIp]

.prototype.toObject([options])

to convert the cidr to an object with start and end ip addresses {start: startIp, end: endIp}

.prototype.toArray([options], [results])

to convert the cidr to an array with all ip addresses in the range
you can get information by chunks using options.from/options.limit or options.from/options.to
you can pass the second argument "results" (object) to get all chunk pagination information

.prototype.loop(fn, [options], [results])

to run fn for each element of the range
you can use the same chunk options as in .toArray()

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial