Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果我提供ip'的数量,是否有任何linux命令/程序可以告诉我子网范围;s_Linux_Ip_Subnet - Fatal编程技术网

如果我提供ip'的数量,是否有任何linux命令/程序可以告诉我子网范围;s

如果我提供ip'的数量,是否有任何linux命令/程序可以告诉我子网范围;s,linux,ip,subnet,Linux,Ip,Subnet,是否有任何linux命令或脚本可以调用以获取子网的ip范围,如果我将ip的数量作为参数传递,例如如果我说256,那么它应该返回我10.0.0.0/24,假设我现在谈论的是10.0.0.0范围。如果安装了Perl,可以使用以下脚本计算该值: perl -le 'print 32-int(log(<>)/log(2));' perl-le'print32int(log()/log(2));' 这将从中的“标准”中获取输入,因此您可以按如下方式输送所需数量的IP: echo 256 |

是否有任何linux命令或脚本可以调用以获取子网的ip范围,如果我将ip的数量作为参数传递,例如如果我说256,那么它应该返回我10.0.0.0/24,假设我现在谈论的是10.0.0.0范围。

如果安装了Perl,可以使用以下脚本计算该值:

perl -le 'print 32-int(log(<>)/log(2));'
perl-le'print32int(log()/log(2));'
这将从中的“标准”中获取输入,因此您可以按如下方式输送所需数量的IP:

echo 256 | perl -le 'print 32-int(log(<>)/log(2));'
# prints 24 followed by a newline to stdout
echo 256 | perl-le'print 32 int(log()/log(2));'
#打印24,然后换行到标准输出
如果希望它在之前显示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
echo 256 | perl-le'打印“10.0.0.0/”。(32 int(log()/log(2));'
#打印10.0.0.0/24,然后换行到标准输出

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

Stack Overflow是编程和开发问题的站点。这个问题似乎离题了,因为它要求提供软件或程序推荐。请参见帮助中心中的。也许是一个更好的提问的地方。