JSFiddle - React, Tailwind, and code Playground
by salitrapraveen
JavaScript
/*** approximation in javascript. since i needed this for myself, i may as well share ***/
$(function() {
var cidrToMask = function(prefix) {
var mask = 0xffffffff << (32 - prefix);
var maskStr = [(mask >>> 24), (mask >> 16 & 0xff), (mask >> 8 & 0xff), (mask & 0xff)].join('.');
return maskStr;
};
var getNetAddress = function(gateway, prefix) {
var mask = cidrToMask(prefix);
var gwParts = gateway.split('.');
var maskParts = mask.split('.');
var address = [];
address.push([(Number(gwParts[0]) & Number(maskParts[0])), (Number(gwParts[1]) & Number(maskParts[1])), (Number(gwParts[2]) & Number(maskParts[2])), (Number(gwParts[3]) & Number(maskParts[3]))].join('.'));
address.push([(Number(gwParts[0]) | (255-Number(maskParts[0]))), (Number(gwParts[1]) | (255-Number(maskParts[1]))), (Number(gwParts[2]) | (255-Number(maskParts[2]))), (Number(gwParts[3]) | (255-Number(maskParts[3])))].join('.'));
return address;
};
console.log(getNetAddress('192.168.0.1', '24'));
// alert(getNetAddress('192.168.0.1', '24'));
});