Fixed exit from ip verification function
This commit is contained in:
parent
e1445c69db
commit
c53040da3b
|
@ -160,29 +160,29 @@ check_ip_is_internal(){
|
||||||
local IPRE='\([0-9]\+\)\.\([0-9]\+\)\.\([0-9]\+\)\.\([0-9]\+\)';
|
local IPRE='\([0-9]\+\)\.\([0-9]\+\)\.\([0-9]\+\)\.\([0-9]\+\)';
|
||||||
local IP=($(echo "$1" | sed -ne 's:^'"$IPRE"'/.*$:\1 \2 \3 \4:p'));
|
local IP=($(echo "$1" | sed -ne 's:^'"$IPRE"'/.*$:\1 \2 \3 \4:p'));
|
||||||
local MASK=($(echo "$1" | sed -ne 's:^[^/]*/'"$IPRE"'$:\1 \2 \3 \4:p'))
|
local MASK=($(echo "$1" | sed -ne 's:^[^/]*/'"$IPRE"'$:\1 \2 \3 \4:p'))
|
||||||
|
|
||||||
if [ ${#MASK[@]} -ne 4 ]; then
|
if [ ${#MASK[@]} -ne 4 ]; then
|
||||||
local BITCNT=($(echo "$1" | sed -ne 's:^[^/]*/\([0-9]\+\)$:\1:p'))
|
local BITCNT=($(echo "$1" | sed -ne 's:^[^/]*/\([0-9]\+\)$:\1:p'))
|
||||||
BITCNT=$(( ((2**${BITCNT})-1) << (32-${BITCNT}) ))
|
BITCNT=$(( ((2**${BITCNT})-1) << (32-${BITCNT}) ))
|
||||||
for (( I=0; I<4; I++ )); do
|
for (( I=0; I<4; I++ )); do
|
||||||
MASK[$I]=$(( ($BITCNT >> (8 * (3 - $I))) & 255 ))
|
MASK[$I]=$(( ($BITCNT >> (8 * (3 - $I))) & 255 ))
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local NETWORK=()
|
local NETWORK=()
|
||||||
|
|
||||||
for (( I=0; I<4; I++ )); do
|
for (( I=0; I<4; I++ )); do
|
||||||
NETWORK[$I]=$(( ${IP[$I]} & ${MASK[$I]} ))
|
NETWORK[$I]=$(( ${IP[$I]} & ${MASK[$I]} ))
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
local INIP=($(echo "$2" | sed -ne 's:^'"$IPRE"'$:\1 \2 \3 \4:p'))
|
local INIP=($(echo "$2" | sed -ne 's:^'"$IPRE"'$:\1 \2 \3 \4:p'))
|
||||||
|
|
||||||
for (( I=0; I<4; I++ )); do
|
for (( I=0; I<4; I++ )); do
|
||||||
[[ $(( ${INIP[$I]} & ${MASK[$I]} )) -ne ${NETWORK[$I]} ]] && exit 0;
|
[[ $(( ${INIP[$I]} & ${MASK[$I]} )) -ne ${NETWORK[$I]} ]] && return 1; #false
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "true"
|
return 0; #true
|
||||||
}
|
}
|
||||||
|
|
||||||
normalize_subnet(){
|
normalize_subnet(){
|
||||||
|
|
Loading…
Reference in New Issue