LINUX.ORG.RU

История изменений

Исправление vodz, (текущая версия) :

Да нате. Представляю, как вы будете это объяснять преподу...

IP1=10.22.0.0
IP2=10.29.255.255

ip2u32() {
        local o1 o2 o3 o4
        IFS=. read o1 o2 o3 o4 <<< "${!2}"
        eval $1='$((o4+o3*256+o2*256*256+o1*256*256*256))'
}

ip2u32 i1 IP1
ip2u32 i2 IP2
read -p "test ip: " TI
ip2u32 ti TI
((((ti>=i1)+(ti<=i2))==2)) && echo Ok
В отличии от regex, это будет работать с любыми валидными IPv4.

Исходная версия vodz, :

Да нате. Представляю, как вы будете это объяснять преподу...

IP1=10.22.0.0
IP2=10.29.255.255

ip2u32() {
        local o1 o2 o3 o4
        IFS=. read o1 o2 o3 o4 <<< "${!2}"
        eval $1='$((o4+o3*256+o2*256*256+o1*256*256*256))'
}

ip2u32 i1 IP1
ip2u32 i2 IP2
read -p "test ip: " TI
ip2u32 ti TI
((((ti>=i1)+(ti<=i2))==2)) && echo Ok