Автоматическая смена WiFi сети, к к

Post new topic   Reply to topic    DD-WRT Forum Index -> Использование и установка DD-WRT
Author Message
ORLEN0K
DD-WRT Novice


Joined: 24 Sep 2017
Posts: 5

PostPosted: Sun Sep 24, 2017 7:58    Post subject: Автоматическая смена WiFi сети, к к Reply with quote
Имееется: 3 роутера (1 кинетик, 1 тп линк, 1 dd-wrt)
dd-wrt работает в режиме wifi клиента. Каким образом можно сделать так, чтобы если пропадало подключение к одной сети, автоматически происходило подключение к другой?
Сети на кинетики и тп линке одинаковые. 192.168.10.0/24.

Опытным путём и командой nvram show | grep *** выяснил:

wl_ssid= Указано название сети к которой подключаемся
cur_ssid= Указано название сети к которой подключаемся
ath0_ssid= Указано название сети к которой подключаемся
ath0_wpa_psk= Пароль сети к которой подключаемся
Есть предположение, что если cur_ssid пусто, то сейчас dd-wrt не подключен к другому роутеру.

Каким образом можно написать скрипт?
Менять нужно только пароль ESSID и BSSID и пароль.

Если разделить на простые вопросы, то будет так:
Как можно определить, что пропало соединение на WAN интерфейсе?
Каким образом если пропало соединение, запустить выполнение скрипта?
Sponsor
vasek00
DD-WRT Guru


Joined: 06 Nov 2010
Posts: 3312

PostPosted: Tue Sep 26, 2017 6:24    Post subject: Re: Автоматическая смена WiFi сети, Reply with quote
ifconfig - вывод интерфейсов, с доп ключами и командами можно получить разную комбинацию по проверки наличия нужного интерфейса

или определяя default маршрут куда указывает
Code:
ip route | awk '/default/ {print $3}'


или ping через нужный сетевой интерфейс
Code:
ping -c2 -I ppp0 194.186.36.167 | awk '/packets received/ {print $4}'`

если какое либо значение не 0 то ОК

Задача в cron (т.е. custom.sh скрипт который написан) контролирует WAN интерфейс и в зависимости от его выполняем действия.

Code:
...
WANup_ppp0=`ifconfig | awk '/vlan2/ {print $1}'`
if [ "$WANup_vlan2" = "vlan2" ]; then
...
действия
...
exit;


Скрипт загоняется через /Diagnostics.asp в окне "Commands" и нажатием "Save Custom Script" в итоге будет готовый скрипт /tmp/custom.sh для запуска из cron (не забываем про строку "#!/bin/sh" самую первую.

Так же присмотритесь к сервисам которые запущены в текущий момент.
ORLEN0K
DD-WRT Novice


Joined: 24 Sep 2017
Posts: 5

PostPosted: Mon Oct 02, 2017 16:23    Post subject: Re: Автоматическая смена WiFi сети, Reply with quote
Правильно ли я понимаю, что в этой строке:

2 packets transmitted, 2 packets received, 0% packet loss

Эта команда:
vasek00 wrote:

Code:
ping -c2 -I ppp0 194.186.36.167 | awk '/packets received/ {print $4}'`



должна вывести это: "2"?

Если да, то почему, когда я ввожу эту команду в поле ввода команд, у меня в ответ приходит строка целиком?
vasek00
DD-WRT Guru


Joined: 06 Nov 2010
Posts: 3312

PostPosted: Tue Oct 03, 2017 9:20    Post subject: Re: Автоматическая смена WiFi сети, Reply with quote
Если вы просто наберете команду ping хх.хх.хх.хх то увидите параметры кол-во переданных, кол-во полученных и т.д. оно должно быть равно.
Code:
ping -c2 -I ppp0 194.186.36.167 | awk '/packets received/ {print $4}'`

-с2 это два пакета => сколько отправили и сколько получили.
-I ppp0 через какой интерфейс их посылать.

Да правильно понимаете.
ORLEN0K
DD-WRT Novice


Joined: 24 Sep 2017
Posts: 5

PostPosted: Tue Oct 03, 2017 12:28    Post subject: Re: Автоматическая смена WiFi сети, Reply with quote
vasek00 wrote:

-с2 это два пакета => сколько отправили и сколько получили.
-I ppp0 через какой интерфейс их посылать.

Да правильно понимаете.

Это я понимаю. Просто когда я набираю команду:
Code:
ping -c2 194.186.36.167 | awk '/packets received/ {print $4}'


В ответ приходит такая строка:
Code:
2 packets transmitted, 2 packets received, 0% packet loss
[/code]
vasek00
DD-WRT Guru


Joined: 06 Nov 2010
Posts: 3312

PostPosted: Tue Oct 03, 2017 13:57    Post subject: Re: Автоматическая смена WiFi сети, Reply with quote
Code:
root@My:~# ping -c2 -I ppp0 194.186.36.167 | awk '/packets received/ {print $4}'
2
root@My:~#
root@My:~# ping -c2 -I ppp0 194.186.36.167 | awk '/received/ {print $4}'
2
root@My:~# ping -c2 -I ppp0 194.186.36.167 | awk '/received/ {print $3}'
transmitted,
root@My:~#

root@My:~# ifconfig | awk '/vlan2/ {print $1}'
vlan2
root@My:~#
ORLEN0K
DD-WRT Novice


Joined: 24 Sep 2017
Posts: 5

PostPosted: Tue Oct 03, 2017 15:06    Post subject: Re: Автоматическая смена WiFi сети, Reply with quote
vasek00 wrote:
Code:
root@My:~# ping -c2 -I ppp0 194.186.36.167 | awk '/packets received/ {print $4}'
2


Да, через telnet/ssh, всё работает.
Через веб-интерфейс, когда я пишу эту же команду, появляется ошибка указанная выше. Это проблема прошивки или браузера или чего?
vasek00
DD-WRT Guru


Joined: 06 Nov 2010
Posts: 3312

PostPosted: Tue Oct 03, 2017 16:00    Post subject: Re: Автоматическая смена WiFi сети, Reply with quote
ORLEN0K wrote:

Да, через telnet/ssh, всё работает.
Через веб-интерфейс, когда я пишу эту же команду, появляется ошибка указанная выше. Это проблема прошивки или браузера или чего?

Это проблема спец.символов таких как ` ' " $.
Вопрос а зачем в WEB вводить данные команды?
ORLEN0K
DD-WRT Novice


Joined: 24 Sep 2017
Posts: 5

PostPosted: Tue Oct 03, 2017 16:16    Post subject: Re: Автоматическая смена WiFi сети, Reply with quote
vasek00 wrote:

Вопрос а зачем в WEB вводить данные команды?

C Линуксом редко работаю, решил посмотреть, что будет если использовать данные команды. Проще всего через web. Ввёл получил строку - немного не понял. Пошел гуглить, что за команды, awk {print $4} - должен вывести 4ое слово в строке. Слова разделяются пробелом. Окей, понял. Пробую ещё раз - ничего не меняется. Пробовал писать и $3 и $2 - выводит строку целиком. Поэтому и задал такой вопрос. Когда Вы ответили, увидел, что Вы вводите команды через telnet/ssh - проверил у себя, всё ок. Значит проблема в web'e. Решил спросить, узнать с чем это связано
Display posts from previous:    Page 1 of 1
Post new topic   Reply to topic    DD-WRT Forum Index -> Использование и установка DD-WRT All times are GMT

Navigation

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum