2017-06-12 26 views
-1

是否有任何Linux命令或脚本,我可以调用获取IP范围与子网,如果我传递数量的IP作为参数,就像如果我说256那么它应该返回我10.0.0.0/24,让我说我是谈论到10.0.0.0范围。是否有任何Linux命令/程序,可以告诉我子网范围,如果我提供的IP的数量?

+0

Stack Overflow是编程和开发问题的网站。这个问题似乎是无关紧要的,因为它要求提供软件或程序建议。请参阅帮助中心的[我可以询问哪些主题](http://stackoverflow.com/help/on-topic)。也许[Software Recommendations Stack Exchange](http://softwarerecs.stackexchange.com/)会是一个更好的地方。 – jww

回答

0

如果您已经安装Perl中,你可以计算与下面的脚本值:

perl -le 'print 32-int(log(<>)/log(2));' 

这需要输入的标准,所以你可以管你想要的IP地址的数量如下:

echo 256 | perl -le 'print 32-int(log(<>)/log(2));' 
# prints 24 followed by a newline to stdout 

如果你想让它之前显示IP,就可以运行这个Perl程序:

echo 256 | perl -le 'print "10.0.0.0/" . (32-int(log(<>)/log(2)));' 
# prints 10.0.0.0/24 followed by a newline to stdout 

子网掩码可以通过从32(IPv4网络掩码长度)中减去所需IP数量的对数基数2来计算,这就是上面的Perl脚本所做的。

+0

谢谢了。我非常感谢你的努力 – ricky

相关问题