#!/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

Shell 脚本计算 IP 地址数量

原文地址: https://www.cveoy.top/t/topic/nNy0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录