I found some code in PHP to convert CIDR to netmask.
function createNetmaskAddr($bitcount) {
$netmask = str_split(str_pad(str_pad('', $bitcount, '1'), 32, '0'), 8);
foreach ($netmask as &$element) $element = bindec($element);
return join('.', $netmask);
}
Is it possible to do it in javascript?
Unfortunately I have no experience in javascript.
I found some code in PHP to convert CIDR to netmask.
function createNetmaskAddr($bitcount) {
$netmask = str_split(str_pad(str_pad('', $bitcount, '1'), 32, '0'), 8);
foreach ($netmask as &$element) $element = bindec($element);
return join('.', $netmask);
}
Is it possible to do it in javascript?
Unfortunately I have no experience in javascript.
Share Improve this question edited May 11, 2018 at 17:24 James Gentes 8,09610 gold badges47 silver badges66 bronze badges asked Feb 20, 2014 at 9:27 OualidOualid 4031 gold badge9 silver badges23 bronze badges2 Answers
Reset to default 16Try this:
function createNetmaskAddr(bitCount) {
var mask = [], i, n;
for(i=0; i<4; i++) {
n = Math.min(bitCount, 8);
mask.push(256 - Math.pow(2, 8-n));
bitCount -= n;
}
return mask.join('.');
}
try this:
function cidrToString(bits) {
const netmaskText = (Math.pow(2, bits) - 1) * Math.pow(2, 32 - bits);
const parts = netmaskText.toString(2).match(/.{1,8}/g);
return parts.map((x) => parseInt(x, 2)).join('.');
}
> console.log(cidrToString(24));
255.255.255.0