diff --git a/white_ip.sh b/white_ip.sh index 477f114..75f0c91 100644 --- a/white_ip.sh +++ b/white_ip.sh @@ -1,7 +1,9 @@ #!/bin/bash +#Подсеть и маска net_addr="100.64.0.0" net_mask="10" +#Преобразование IP адреса в число ip2int () { local IFS=. ip num e @@ -14,10 +16,9 @@ ip2int () } start_int=`ip2int $net_addr` -(( end_int = start_int + 2 ** ( 32 - net_mask ) )) - -#echo IP range is $start_int - $end_int +(( end_int = start_int + 2 ** ( 32 - net_mask ) - 1 )) +#Получение адреса wan интерфейса, при необходимости замените на свой вариант ip=$(ip -f inet -o addr show pppoe-wan|cut -d\ -f 7 | cut -d/ -f 1) ip_int=`ip2int $ip` @@ -25,9 +26,12 @@ echo `date` Current IP is $ip "("$ip_int")" if [[ $ip_int -ge $start_int && $ip_int -le $end_int ]]; then + #Таймауты между попытками необходимы чтобы не словить кратковременную блокировку от РТ echo `date` Grey IP received, restarting wan... - sleep 30 + #30 секунд таймаут перед отключением, после чего гасим wan шинтерфейс + sleep 30 ifdown wan + #Еще 30 секунд таймаут и повторная попытка подключения sleep 30 ifup wan fi