计算 JavaScript 中两个 IP 地址之间存在的 IP 地址数量

问题

我们需要编写一个 JavaScript 函数,它接收两个 IPv4 地址,并返回它们之间的地址数(包括第一个,不包括最后一个)。

这可以通过将它们转换为十进制并找到它们的绝对差来完成。

示例

以下是代码 -

const ip1 = '20.0.0.10';

const ip2 = '20.0.1.0';

const countIp = (ip1, ip2) => {

   let diff = 0;

   const aIp1 = ip1.split(".");

   const aIp2 = ip2.split(".");

   if (aIp1.length !== 4 ||aIp2.length!== 4) {

      return "Invalid IPs: incorrect format";

   }

   for (x = 0; x < 4; x++) {

      if (

         isNaN(aIp1[x]) || isNaN(aIp2[x])

         || aIp1[x] < 0 || aIp1[x] > 255

         || aIp2[x] < 0 || aIp2[x] > 255

      ) {

         return "Invalid IPs: incorrect values"

      }

      diff += (aIp1[x] - aIp2[x]) * (256 * (3-x));

   }

   return Math.abs(diff);

};

console.log(countIp(ip1, ip2));

输出结果

以下是控制台输出 -

256

以上是 计算 JavaScript 中两个 IP 地址之间存在的 IP 地址数量 的全部内容, 来源链接: utcz.com/z/357714.html

回到顶部