gpt4 book ai didi

javascript - 将 IP 地址拆分为八位字节,然后对每个八位字节进行一些计算

转载 作者:行者123 更新时间:2023-11-30 08:59:35 26 4
gpt4 key购买 nike

我确实有这个工作,但它非常丑陋,它让我夜不能寐,试图想出一段 Eloquent 代码来完成它。

我需要获取一系列表示 IP 范围的字符串,并确定该字符串将表示多少个实际 IP 地址。我的方法是将其拆分为 4 个八位字节,然后尝试拆分每个八位字节并从那里进行数学计算。

例如:1.2.3.4-6 代表 1.2.3.4、1.2.3.5 和 1.2.3.6,因此我想从这个范围内得到 3 的答案。

为了进一步复杂化,我开始使用的字符串可以是文本框中此类范围的列表,以换行符分隔,因此我需要单独查看每一行,获取表示的 IP 地址的计数,以及最后,有多少提交的范围有这个条件。

1.1.1.4-6     /* Represents 3 actual IP Addresses, need to know "3" */
2.2.3-10.255 /* Represents 8 actual IP Addresses, need to know "8" */
3.3.3.3 /* No ranges specified, skip this
4.4.4.4 /* No ranges specified, skip this

最终结果是我想知道的是2行包含一个“范围”,代表8个IP地址(3+8)

我的 sleep 时间表将不胜感激任何 Eloquent 解决方案。 :)

最佳答案

There you go:

var ips = ["1.2.3.4", "2.3.4-6.7", "1.2.3.4-12"];
for(var i=0; i<ips.length; i++) {
var num = 1;
var ip = ips[i];
var parts = ip.split('.');
for(var j=0; j<parts.length; j++) {
var part = parts[j];
if(/-/.test(part)) {
var range = part.split('-');
num *= parseInt(range[1]) - parseInt(range[0]) + 1;
}
}
alert(ip + " has " + num + " ips.");
}​

此代码还可以正确处理 1.2.3-4.0-255 等范围(即该范围内的 256*2=512 ips)。没有范围的列表项总共产生 1 个 ips,如果不需要它们,您可以根据结果 num 忽略它们。

您可能需要稍微修改我的示例,但我相信您这样做不会有任何问题。

关于javascript - 将 IP 地址拆分为八位字节,然后对每个八位字节进行一些计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10417908/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com