LINUX.ORG.RU
ФорумAdmin

Скрипт смены Wan IP адреса

 , ,


1

1

Добрый день! Уважаемые форумчане, помогите решить следующую проблему: Имеется роутер TP-Link WR842ND v2 с установленной на борту прошивкой OpenWrt. Подключение к инету происходит посредством PppoE соединения. Провайдер при подключении рандомно раздает или адреса из локальной подсети (серые), либо белые адреса. Чтобы получить белый адрес, приходится несколько раз переподключать интерфейс WAN. Аренда адреса на 1 сутки, очень неудобно делать это каждый день. Если адрес серый, моя соня 4 не хочет корректно работать через сеть из-за ограничений nat. Вопрос: Нельзя ли на роутере сделать некоторый скрипт, который будет мониторить ip адрес подключения? Скажем мониторинг раз в 5 минут, если первая цифра адреса 10 или 172 или 192, то реконнект. Проблема в том, что я абсолютно не соображаю в написании скриптов =) Не могли бы Вы мне помочь? Заранее благодарен!

Скажем мониторинг раз в 5 минут

Разве раздача адреса не происходит при подключении?

snaf ★★★★★ ()
Ответ на: комментарий от snaf

Все верно, задача скрипта переподключать wan интерфейс до тех пор, пока адрес соединения не будет начинаться с 10 или 192 или 172

sergeylyutov ()
Ответ на: комментарий от SevikL

Нет, адрес подключения не всегда начинается с 10 или 192 или 172, это как раз то, что мне нужно.Если начинается с других цифр, то приставка нормально коннектится к серверам

sergeylyutov ()
Ответ на: комментарий от sergeylyutov

Если не секрет, можно наименование провайдера и город?

Deleted ()

Позвони провайдеру, попроси внешний фиксированный адрес. Это или ничего не стоит, или стоит в пределах 200р в месяц.

Black_Shadow ★★★★★ ()
Последнее исправление: Black_Shadow (всего исправлений: 1)
Ответ на: комментарий от sergeylyutov

Может кто-нибудь проверить правильность написания скрипта?

#!/bin/bash
STR=`ifconfig eth0.2|grep inet`
STRARR=' ' read -a array <<< «$STR»
STRIP=«${array[1]}»
I=`echo $STRIP | tr '.' ' '`
I=`echo $I | tr '/:' ' '`
STRARR=' ' read -a array <<< «$I»
STRIP1=«${array[1]}»
echo $STRIP1
STRIP2=«${array[2]}»
echo $STRIP2
STRIP3=«${array[3]}»
echo $STRIP3
STRIP4=«${array[4]}»
echo $STRIP4
if [[$STRIP1 -eq «172» || $STRIP1 -eq «10» || $STRIP1 -eq «192»]];
then
(ifdown wan; sleep 5; ifup wan) &
fi

sergeylyutov ()
Ответ на: комментарий от sergeylyutov

Получилось, проверил работу, просто оставлю это здесь

#!/bin/bash
STR=`ifconfig "Имя интерфейса"|grep inet`
STRARR=' ' read -a array <<< "$STR"
STRIP="${array[1]}"
I=`echo $STRIP | tr '.' ' '`
I=`echo $I | tr '/:' ' '`
STRARR=' ' read -a array <<< "$I"
STRIP1="${array[1]}"
STRIP2="${array[2]}"
STRIP3="${array[3]}"
STRIP4="${array[4]}"



if [[ $STRIP1 -eq "172" || $STRIP1 -eq "11" || $STRIP1 -eq "192" ]];
then
    echo $STRIP1"."$STRIP2"."$STRIP3"."$STRIP4": ""Restarting Wan Interface"
  
    (ifdown "Имя интерфейса"; sleep 5; ifup "Имя интерфейса") &


  else

echo $STRIP1"."$STRIP2"."$STRIP3"."$STRIP4": ""White Wan IP"


fi

sergeylyutov ()
Ответ на: комментарий от sergeylyutov

не то чтоб надо платить. просто в один прекрасный день все может резко измениться. И снова надо будет надо искать выход из жопы. Я так один раз некисло наорал на прова что мой белый ip, который у меня был 5 лет, внезапно поменяли. Адрес вернули с извинениями, но с аккуратной припиской что вообще говоря у меня статика в услуги не входит

upcFrost ★★★★★ ()
16 ноября 2015 г.
Ответ на: комментарий от sergeylyutov

Не подскажете почему выдает ошибку скрипт check.sh: line 3: syntax error: unexpected redirection Интерфейс у меня pppoe-wan. #!/bin/bash STR=`ifconfig «pppoe-wan»|grep inet` STRARR=' ' read -a array <<< «$STR» STRIP=«${array[1]}» I=`echo $STRIP | tr '.' ' '` I=`echo $I | tr '/:' ' '` STRARR=' ' read -a array <<< «$I» STRIP1=«${array[1]}» STRIP2=«${array[2]}» STRIP3=«${array[3]}» STRIP4=«${array[4]}»

if [[ $STRIP1 -eq «172» || $STRIP1 -eq «11» || $STRIP1 -eq «192» ]]; then echo $STRIP1".«$STRIP2».«$STRIP3».«$STRIP4»: «„Restarting Wan Interface“ (ifdown „pppoe-wan“; sleep 5; ifup „pppoe-wan“) &

else

echo $STRIP1».«$STRIP2».«$STRIP3».«$STRIP4»: «„White Wan IP“

fi

msSerg ()
Ответ на: комментарий от axelroot

нет такого способа. у вашего прова некорректно роутинг работает и вводит вас в заблуждение.

Почему ? Дом.ру, одно время, раздавал адреса в перемешку, то приватные, то публичные.

AS ★★★★★ ()
Ответ на: комментарий от msSerg

Сможете помочь ?

В чём именно ?

через раз адреса из 100.120.*.*

Во. Это - четвёртая. Превые три - это недостаточно, или вовсе неправильные цифры в строке для сравнения. Причём, для чего 11, вообще непонятно, если раньше речь про 10 шла.

Ну и я так понимаю, что речь про bash4, раз речь про массивы в коде.

AS ★★★★★ ()
Ответ на: комментарий от AS

Доброго времени суток . Есть роутер Tp-Link 740 и прошит OpenWRT - OpenWrt Attitude Adjustment 12.09 / LuCI Trunk (svn-r9934) с Web интерфейсом . И местный провайдер начал чередовать белые и серые адреса . Как в роутер добавить скрипт для смены адреса ? или ссылку если это уже обсуждалось , но поиском не нашел ...

Vincentre ()
Ответ на: комментарий от Vincentre

или ссылку если это уже обсуждалось , но поиском не нашел ...

Так вот именно эта тема. Только надо поправить скрипт с учётом правильных диапазонов IP-адресов. Или вопрос, как этот скрипт к OpenWRT прицепить ? Так документацию почитать на прошивку. Наверное, залить куда-то и на крон повесить. Или ещё как.

AS ★★★★★ ()
Ответ на: комментарий от AS

Именно как прицепить . пробовал в разделе «System» ==> «Startup» никакой реакции не происходит

Vincentre ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.