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'));

});