Shell 脚本计算 IP 地址数量
#!/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/nNy0 著作权归作者所有。请勿转载和采集!