最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

php - CIDR to netmask conversion in javascript - Stack Overflow

programmeradmin3浏览0评论

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 badges
Add a ment  | 

2 Answers 2

Reset to default 16

Try 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
发布评论

评论列表(0)

  1. 暂无评论