Скрипты для переподключения pppoe соединения на ADSL модеме
Всем привет!
На неделе от безделья написал скрипты для сброса PPPOE сессии на ADSL модеме через ПК
Поскольку у меня нет белого IP адреса я пользуюсь ими для переподключения сессии.
Это позволяет мне качать с файлообменников без задержек и ожидания.
Скрипты написаны для ОС Linux
Требуется программа – expect
На смену IP адреса уходит ~20 секунд.
Тестировалось на модеме StarNet перешитый в Acorp Lan 120
Идея:
При обрыве соединения ppp0 происходит автоматическое переподключение.
Всего 3 скрипта, всё сложить в одну папку.
p1 – Узнаёт PID демона PPPD
Листинг:
- #!/usr/bin/expect -f
- log_user 0
- spawn telnet 192.168.1.1
- expect “BusyBox on router login:” {send “root\r”}
- expect “Password:” {send “Admin\r”}
- expect “#” {send “ps ax |grep pppd\r”}
- log_user 1
- send “exit\r”
- expect eof
p2 - Убивает PPPD по PID возвращённому скриптом run.sh (смотри ниже)
И модем СРАЗУ автоматически поднимает заново.
Листинг:
- #!/usr/bin/expect -f
- set pid [lindex $argv 0]
- log_user 0
- spawn telnet 192.168.1.1
- expect “BusyBox on router login:” {send “root\r”}
- expect “Password:” {send “Admin\r”}
- expect “#” {send “kill $pid”}
- send “exit\r”
- expect eof
Скрипт run.sh – Парсит PID от p1 и отсылает его в качестве аргумента p2 который и прибивает PPPD
Листинг:
#!/bin/sh
./p1 | grep pppd | grep -v grep | awk '{print $1;}' | xargs ./p2
Даём права на исполнение и просто делаем: ./run.sh
Всё остальное пройдёт автоматом.
Поправьте IP модема на свой.
Для желающих прикрутить цикл проверки IP:
Пропарсить IP с модема можно на пример так:
ifconfig eth0 | colrm 1 10 | awk -F "[: ]" '$1 ~ /^inet$/{print $3}'
Т.е пишем например скрипт p3 который возвращает ip
Вот готовый:
- #!/usr/bin/expect -f
- log_user 0
- spawn telnet 192.168.1.1
- expect “BusyBox on router login:” {send “root\r”}
- expect “Password:” {send “Admin\r”}
- expect “#” {send “ifconfig ppp0\r”}
- log_user 1
- send “exit\r”
- expect eof
И парсим его вывод.
Например:
$ ./p3.sh | colrm 1 10 | awk -F "[: ]" '$1 ~ /^inet$/{print $3}'
90.151.225.121
Скрипты можно модифицировать, например:
Можно написать цикл проверки IP адреса если Вас интересует конкретный диапазон IP.
В общем всё зависит от Вашей фантазии.
Здравствуйте!
Когда гугл выдал мне заголовок этой статьи “Скрипты для переподключения pppoe соединения на ADSL модеме”, очень обрадовался. Но потом увидел, что скрипты для линукса. Так вот, можно ли сделать так, что бы те же функции выполнялись на Windows XP?
Если кто знает, напишите, пожалуйста на v’bk just-cannabis@mail.ru или стучитесь 1342272
Можно, делается через vbs скрипт.
У меня где-то пример завалился.
Вот, нашёл: http://club.2-u.ru/forum/viewtopic.php?id=371
Там пример есть, переделай под себя.
Ещё можно на Perl написать:
http://it-shnik.blogspot.com/2008/09/net-telnet-telnet.html
Хорошая статья, тоже занимался написанием подобных скриптиков — интересно, конечно, спора нет. Но потом это изобретение велосипедов надоело, и в качестве роутера я поставил FreeBSD, поднял ppp-демон mpd. Кстати, функционал автоматического переподнятия сессии в нем из коробки.