Bourne shell - 将IP范围转换为子网集

时间:2015-04-20 21:21:19

标签: function ip range sh cidr

我正在寻找Bourne shell中的一个函数来转换给定范围的IP,格式为" sIP-dIP"到一组可用的子网,定义了相同的范围。 我正在寻找的是与此网站提供的 IP范围功能完全相同的结果:http://www.ipaddressguide.com/cidr

示例:

鉴于:

10.0.0.6-10.10.1.34:

结果:

10.0.0.6/31
10.0.0.8/29
10.0.0.16/28
10.0.0.32/27
10.0.0.64/26
10.0.0.128/25
10.0.1.0/24
10.0.2.0/23
10.0.4.0/22
10.0.8.0/21
10.0.16.0/20
10.0.32.0/19
10.0.64.0/18
10.0.128.0/17
10.1.0.0/16
10.2.0.0/15
10.4.0.0/14
10.8.0.0/15
10.10.0.0/24
10.10.1.0/27
10.10.1.32/31
10.10.1.34/32 

我见过许多例子,但它们全部用于 bash C phyton ,但我在busybox上Bourne shell。

有人可以提供一些意见吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以使用

替换bash特定的C风格for循环
a=1
while [ "$a" -le "$diff" ]; do
    # body of loop here
    a=$((a+1))
done

用于POSIX兼容性。