我实际上有这个工作,但它非常丑陋,它让我夜不能寐,试图想出一段雄辩的代码来完成它。
我需要获取一系列代表 IP 范围的字符串,并确定该字符串将代表多少个实际 IP 地址。我的方法是将其拆分为 4 个八位字节,然后尝试拆分每个八位字节并从那里进行数学运算。
eg: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)
我的睡眠时间表将不胜感激任何雄辩的解决方案。:)