shell写一个计算ip数量的sh
#!/bin/bash
echo "请输入一个ip地址的CIDR(格式:x.x.x.x/x):" read input_cidr
将输入的CIDR分割成IP地址和子网掩码两部分
ip=${input_cidr%/} netmask=${input_cidr#/}
将IP地址转换成二进制
ip_binary=$(echo $ip | awk -F. '{printf "%08d%08d%08d%08d\n", $1, $2, $3, $4}')
计算子网掩码的二进制形式
netmask_binary="" for ((i=0; i<32; i++)); do if [ $i -lt $netmask ]; then netmask_binary+="1" else netmask_binary+="0" fi done
计算IP地址数量
ip_count=$((2 ** (32 - netmask)))
echo "IP地址数量为:$ip_count"
原文地址: https://www.cveoy.top/t/topic/d885 著作权归作者所有。请勿转载和采集!