2016-01-26 4 views
0

Я исправил свою проблему, благодаря всем, кто пытался мне помочь.Определить маску сети для префикса CIDR

#!/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-адреса

*) 
echo "please enter a valid ip address" 

esac 

в этот скрипт может конвертировать ip-адрес с адреса CIDR в четырехстрочный и наоборот

+0

Покажите нам, что вы пробовали. – Farseer

+0

Im новый начинающий в linux, поэтому мне просто нужно понять, как я могу начать – Miron

+0

http://linuxconfig.org/bash-scripting-tutorial – Farseer

ответ

2

Я думаю, вы будете в гораздо лучшем положении, если вы используете Python для этого. Модуль netaddr может помочь вам выполнить эти вычисления очень легко.

Netaddr = http://pythonhosted.org/netaddr/tutorial_01.html

Если вы на системе Linux, вы можете использовать ipcalc программу, чтобы сделать эти расчеты также.

+0

Я получаю задачу сделать это по сценарию с linux "bash" – Miron

Смежные вопросы