Убрал лишний IP в конце диапазона
This commit is contained in:
12
white_ip.sh
12
white_ip.sh
@@ -1,7 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
#Подсеть и маска
|
||||||
net_addr="100.64.0.0"
|
net_addr="100.64.0.0"
|
||||||
net_mask="10"
|
net_mask="10"
|
||||||
|
|
||||||
|
#Преобразование IP адреса в число
|
||||||
ip2int ()
|
ip2int ()
|
||||||
{
|
{
|
||||||
local IFS=. ip num e
|
local IFS=. ip num e
|
||||||
@@ -14,10 +16,9 @@ ip2int ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
start_int=`ip2int $net_addr`
|
start_int=`ip2int $net_addr`
|
||||||
(( end_int = start_int + 2 ** ( 32 - net_mask ) ))
|
(( end_int = start_int + 2 ** ( 32 - net_mask ) - 1 ))
|
||||||
|
|
||||||
#echo IP range is $start_int - $end_int
|
|
||||||
|
|
||||||
|
#Получение адреса wan интерфейса, при необходимости замените на свой вариант
|
||||||
ip=$(ip -f inet -o addr show pppoe-wan|cut -d\ -f 7 | cut -d/ -f 1)
|
ip=$(ip -f inet -o addr show pppoe-wan|cut -d\ -f 7 | cut -d/ -f 1)
|
||||||
|
|
||||||
ip_int=`ip2int $ip`
|
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 ]];
|
if [[ $ip_int -ge $start_int && $ip_int -le $end_int ]];
|
||||||
then
|
then
|
||||||
|
#Таймауты между попытками необходимы чтобы не словить кратковременную блокировку от РТ
|
||||||
echo `date` Grey IP received, restarting wan...
|
echo `date` Grey IP received, restarting wan...
|
||||||
sleep 30
|
#30 секунд таймаут перед отключением, после чего гасим wan шинтерфейс
|
||||||
|
sleep 30
|
||||||
ifdown wan
|
ifdown wan
|
||||||
|
#Еще 30 секунд таймаут и повторная попытка подключения
|
||||||
sleep 30
|
sleep 30
|
||||||
ifup wan
|
ifup wan
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user