https://github.com/tristanls/cidr-split
Split facility for CIDRs.
https://github.com/tristanls/cidr-split
cidr math subnet
Last synced: about 1 year ago
JSON representation
Split facility for CIDRs.
- Host: GitHub
- URL: https://github.com/tristanls/cidr-split
- Owner: tristanls
- License: mit
- Created: 2017-11-09T01:43:48.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-06-02T13:50:51.000Z (about 8 years ago)
- Last Synced: 2025-02-13T01:36:57.183Z (over 1 year ago)
- Topics: cidr, math, subnet
- Language: JavaScript
- Size: 6.84 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# cidr-split
_Stability: 1 - [Experimental](https://github.com/tristanls/stability-index#stability-1---experimental)_
[](http://npmjs.org/package/cidr-split)
Split facility for CIDRs.
## Contributors
[@tristanls](https://github.com/tristanls)
## Contents
* [Installation](#installation)
* [Usage](#usage)
* [Tests](#tests)
* [Documentation](#documentation)
* [CIDR](#cidr)
* [Releases](#releases)
## Installation
npm install cidr-split
## Usage
To run the below example, run:
npm run readme
```javascript
"use strict";
const CIDR = require("../index.js");
console.log("Split 10.0.0.0/16 into two and print out");
CIDR.fromString("10.0.0.0/16").split().map(cidr => console.log(cidr.toString()));
console.log("Split 10.0.0.0/16 into four and print out");
CIDR.fromString("10.0.0.0/16")
.split()
.map(cidr => cidr.split())
.reduce((all, halves) => all.concat(...halves))
.map(cidr => console.log(cidr.toString()));
```
## Tests
No tests at this time.
## Documentation
* [CIDR](#cidr)
### CIDR
**Public API**
* [CIDR.fromString(cidr)](#cidrfromstringcidr)
* [cidr.split()](#cidrsplit)
### CIDR.fromString(cidr)
* `cidr`: _String_ String representation of a CIDR, ex: `10.0.0.0/16`
* Return: _CIDR_ CIDR created from the string.
Parses `cidr` string and creates a `CIDR` object.
### cidr.split()
* Retrun: _Array_ Array of two CIDRs, each being one half of the `cidr`.
If possible, splits the `cidr` into two CIDRs that are half the size.
## Releases
We follow semantic versioning policy (see: [semver.org](http://semver.org/)):
> Given a version number MAJOR.MINOR.PATCH, increment the:
>
>MAJOR version when you make incompatible API changes,
>MINOR version when you add functionality in a backwards-compatible manner, and
>PATCH version when you make backwards-compatible bug fixes.
**caveat**: Major version zero is a special case indicating development version that may make incompatible API changes without incrementing MAJOR version.