UNPKG

kibana-riya

Version:

Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic

31 lines (25 loc) 963 B
import Ipv4Address from 'ui/utils/ipv4_address'; let NUM_BITS = 32; function throwError(mask) { throw Error('Invalid CIDR mask: ' + mask); } function CidrMask(mask) { let splits = mask.split('\/'); if (splits.length !== 2) throwError(mask); this.initialAddress = new Ipv4Address(splits[0]); this.prefixLength = Number(splits[1]); if (this.prefixLength < 1 || this.prefixLength > NUM_BITS) throwError(mask); } CidrMask.prototype.getRange = function () { let variableBits = NUM_BITS - this.prefixLength; let fromAddress = this.initialAddress.valueOf() >> variableBits << variableBits >>> 0; // >>> 0 coerces to unsigned let numAddresses = Math.pow(2, variableBits); return { from: new Ipv4Address(fromAddress).toString(), to: new Ipv4Address(fromAddress + numAddresses - 1).toString() }; }; CidrMask.prototype.toString = function () { return this.initialAddress.toString() + '/' + this.prefixLength; }; export default CidrMask;