UNPKG

subnet-cidr-calculator

Version:

JavaScript class for calculating all possible subnets, subnet validity, ip range

121 lines (77 loc) 3.45 kB
# subnet-cidr-adviser ================= JavaScript class for calculating all possible subnets, subnet validity, ip range <a href="https://www.buymeacoffee.com/pratiktayade" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a> What does it do? ---------------- * Calculates all possible subnets within the given vpc. * Calculates IP range available within each of the subnet. * Calculates if subnet you are trying to create is already taken or overlapping with existing subnet (you need to provide a list of existing subnets). * Suggest next possible subnet (you need to provide a list of existing subnets). * Takes a Subnet CIDR network address and returns information ( all hosts, start address, end address) Download ------- * [npm](https://www.npmjs.com/package/subnet-cidr-calculator) Demo ------- * [demo](http://pratik-github.github.io/subnet-cidr-adviser/) Support ------- * Node.js * ... in progress Installation ------------ ```sh > bower install subnet-cidr-calculator > npm install subnet-cidr-calculator ``` Node.js ------- ```javascript var SubnetCIDRAdviser = require( 'subnet-cidr-calculator' ); var existingSubnetCIDR = ['10.0.32.0/19']; var probabal_subnets = SubnetCIDRAdviser.calculate('10.0.0.0' , '16', existingSubnetCIDR); var is_overlap = SubnetCIDRAdviser.isSubnetOverlap(existingSubnetCIDR, '10.0.32.0/20'); console.log(is_overlap, 'subnetOverlap'); var ip_range = SubnetCIDRAdviser.getIpRangeForSubnet( '10.0.32.0/20' ); console.log('IP range for 10.0.32.0/20 is', ip_range); var subnetdetails = SubnetCIDRAdviser.getSubnetDetails( '10.0.32.0/20' ); console.log('Details for 10.0.32.0/20 is', subnetdetails); var parentVPC_CIDR = '10.0.0.0/16'; var cidrToValidate = ''; var getNextValidCIDR = SubnetCIDRAdviser.getNextValidCIDR( parentVPC_CIDR, existingSubnetCIDR, probabal_subnets, cidrToValidate ); console.log('getNextValidCIDR is', getNextValidCIDR); ``` RequireJS --------- ```javascript require( [ 'ip-subnet-calculator' ], function( SubnetCIDRAdviser ) { console.log( SubnetCIDRAdviser.calculate( '10.0.0.0', '16', existingSubnetCIDR ) ); } ); ``` Direct browser use ------------------ ```html <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script> <script src="./lib/SubnetCIDRAdviser.js"></script> <script type="text/javascript"> var existingSubnetCIDR = ['10.0.32.0/19']; var probabal_subnets = SubnetCIDRAdviser.calculate('10.0.0.0' , '16', existingSubnetCIDR); var is_overlap = SubnetCIDRAdviser.isSubnetOverlap(existingSubnetCIDR, '10.0.32.0/20'); console.log(is_overlap, 'subnetOverlap'); var ip_range = SubnetCIDRAdviser.getIpRangeForSubnet( '10.0.32.0/20' ); console.log('IP range for 10.0.32.0/20 is', ip_range); var subnetdetails = SubnetCIDRAdviser.getSubnetDetails( '10.0.32.0/20' ); console.log('Details for 10.0.32.0/20 is', subnetdetails); var parentVPC_CIDR = '10.0.0.0/16'; var cidrToValidate = ''; var getNextValidCIDR = SubnetCIDRAdviser.getNextValidCIDR( parentVPC_CIDR, existingSubnetCIDR, probabal_subnets, cidrToValidate ); console.log('getNextValidCIDR is', getNextValidCIDR); ``` API --- ### SubnetCIDRAdviser.calculate( '10.0.0.0', '16', existingSubnetCIDR ) ### Calculates all possible subnets within the given vpc ... in progress.. more to come... :)