计算 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