Bash 确定CIDR前缀的网络掩码

Bash 确定CIDR前缀的网络掩码,bash,Bash,多亏了大家的帮助,我解决了我的问题 #!/bin/bash echo "enter you ip" read ip case $ip in 将CIDR地址更改为四元样式 *.*.*.*/*) b=`echo $ip | cut -d/ -f1` a=`echo $ip | cut -d/ -f2` if [ $a -eq 24 ];then echo "$b 255.255.255.0" elif [ $a -eq 25 ];then echo "$b 255.255.255

多亏了大家的帮助,我解决了我的问题

#!/bin/bash
echo "enter you ip"
read ip
case $ip in  
将CIDR地址更改为四元样式

*.*.*.*/*)
b=`echo $ip | cut -d/ -f1`
a=`echo $ip | cut -d/ -f2`

if [ $a -eq 24 ];then
   echo "$b 255.255.255.0"
elif [ $a -eq 25 ];then
   echo "$b 255.255.255.128"
elif [ $a -eq 26 ];then
   echo "$b 255.255.255.192"
elif [ $a -eq 27 ];then
   echo "$b 255.255.255.224"
elif [ $a -eq 28 ];then
   echo "$b 255.255.255.240"
elif [ $a -eq 29 ];then
   echo "$b 255.255.255.248"
elif [ $a -eq 30 ];then
   echo "$b 255.255.255.252"
elif [ $a -eq 31 ];then
   echo "$b 255.255.255.254"
elif [ $a -eq 32 ];then
   echo "$b 255.255.255.255"
fi
;;  
对立面

 *.*.*.*\ *.*.*.*)
c=`echo $ip | awk '{print $1}'`
d=`echo $ip | awk '{print $2}'`

if [ $d == 255.255.255.0 ];then
echo "$c/24"
elif [ $d == 255.255.255.128 ];then
echo "$c/25"
elif [ $d == 255.255.255.192 ];then
echo "$c/26"
elif [ $d == 255.255.255.224 ];then
echo "$c/27"
elif [ $d == 255.255.255.240 ];then
echo "$c/28"
elif [ $d == 255.255.255.248 ];then
echo "$c/29"
elif [ $d == 255.255.255.252 ];then
echo "$c/30"
elif [ $d == 255.255.255.254 ];then
echo "$c/31"
elif [ $d == 255.255.255.255 ];then
echo "$c/32"
fi

;;  
如果您写入ip地址的fel格式

*)
echo "please enter a valid ip address"

esac  
在这个脚本中,您可以将ip地址从CIDR地址转换为四元格式和相反的格式


我认为如果您使用Python来实现这一点,您将处于更好的位置。 NetAddress模块可以帮助您非常轻松地执行这些计算

NetAddress=


如果您在linux系统上,也可以使用ipcalc程序进行这些计算

我认为如果您使用Python进行此操作,您将处于更好的位置。 NetAddress模块可以帮助您非常轻松地执行这些计算

NetAddress=


如果您在linux系统上,也可以使用ipcalc程序进行这些计算

告诉我们你尝试了什么。我是linux新手,所以我只需要一个提示我如何开始我在bash中学习了基本脚本,但我不知道如何开始这个问题“192.168.1.0”部分与“/24”==“255.255.255.0”无关。告诉我们你尝试了什么。我是linux新手,因此,我只需要一个提示我如何开始我在bash中学习了基本脚本,但我不知道如何从这个问题开始“192.168.1.0”部分与“/24”==“255.255.255.0”无关。我使用linux“bash”通过脚本获得任务我使用linux“bash”通过脚本获得任务