From 12c98cb4d9b1e47b581c6a01755519914bf403ff Mon Sep 17 00:00:00 2001 From: Maksim Ivanov <34414986+Ld-Hagen@users.noreply.github.com> Date: Mon, 13 Sep 2021 23:15:11 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BB=20=D0=BB=D0=B8?= =?UTF-8?q?=D1=88=D0=BD=D0=B8=D0=B9=20IP=20=D0=B2=20=D0=BA=D0=BE=D0=BD?= =?UTF-8?q?=D1=86=D0=B5=20=D0=B4=D0=B8=D0=B0=D0=BF=D0=B0=D0=B7=D0=BE=D0=BD?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- white_ip.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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