Первая версия
This commit is contained in:
9
10-white_ip
Normal file
9
10-white_ip
Normal file
@@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
WHITE=/opt/white_ip.sh
|
||||
[ "$INTERFACE" = "wan" ] && {
|
||||
[ "$ACTION" = "ifup" ] && {
|
||||
$WHITE >> /opt/white.log
|
||||
}
|
||||
}
|
||||
|
||||
10
README.md
10
README.md
@@ -1,2 +1,10 @@
|
||||
# rt-white-ip
|
||||
Small bash script to reconnet when getting grey ip on Rostelecom
|
||||
Небольшой скрипт для переподключения при получении серого IP у Ростелекома.
|
||||
|
||||
##Использование (на OpenWRT)
|
||||
|
||||
1. Скопируйте файлы 10-white_ip и white_ip.sh в директорию /opt на роутере
|
||||
2. Сделайте их исполняемыми
|
||||
```chmod +x /opt/10-white_ip /opt/white_ip.sh```
|
||||
3. Создайте ссылку на 10-white_ip в /etc/hotplug.d/iface/
|
||||
```ln -s /opt/10-white_ip /etc/hotplug.d/iface/```
|
||||
|
||||
34
white_ip.sh
Normal file
34
white_ip.sh
Normal file
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
net_addr="100.64.0.0"
|
||||
net_mask="10"
|
||||
|
||||
ip2int ()
|
||||
{
|
||||
local IFS=. ip num e
|
||||
ip=($1)
|
||||
for e in 3 2 1 0
|
||||
do
|
||||
(( num += ip[3-e] * 256 ** e ))
|
||||
done
|
||||
echo $num
|
||||
}
|
||||
|
||||
start_int=`ip2int $net_addr`
|
||||
(( end_int = start_int + 2 ** ( 32 - net_mask ) ))
|
||||
|
||||
#echo IP range is $start_int - $end_int
|
||||
|
||||
ip=$(ip -f inet -o addr show pppoe-wan|cut -d\ -f 7 | cut -d/ -f 1)
|
||||
|
||||
ip_int=`ip2int $ip`
|
||||
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
|
||||
ifdown wan
|
||||
sleep 30
|
||||
ifup wan
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user