# Смена пароля в lan модеме

## Cleus

Такой гадкий пров, что есть необходимость пользоваться разными ADSL тарифными планами, типа посерфить отдельно, покачать отдельно.

Модем лановский ZyXEL (OMNI LAN - старый еще), логин и пароли прописываются непосредственно в настройках модема. Настраивается модем как обычно, через телнет и веб-морду.

Можно ли как-то смену логинов и паролей его автоматизировать? Скриптом там, каким? Иначе задолбаешься туда -сюда пароли перетыкать. Слышал, что сделать что-такое можно...

----------

## Laitr Keiows

Там помню что-то такое было, какие-то разные профили, если по телнету заходить.

Но это лучше в другом форуме спросить, там где про Зюксели все знают.

Еще можно в их саппорт написать, помню что они очень четко и по делу отвечали.

Гарантия на эти зюксели 5 лет если на сайте зарегестрировался вовремя.

----------

## user11

Думаю, меня сейчас забросают помидорами  :Smile: 

Я бы попробовал использовать управлять через web с помощью wget'а.

Надо только разобраться, какой запрос надо посылать для выполнения нужных действий, и как перед этим на модем логиниться.

Например, это может выглядеть как-то типа (урлы пишу весьма от балды, лишь  для демонстрации идеи):

```
wget --save-cookies=cookies http://192.168.1.1/Forms/rpAuth_1?password=1234

wget --load-cookies=cookies http://192.168.1.1/Forms/WAN_1?wan_RemoteName=myISP&wan_Mode=routing&wan_UserName=qwerty&wan_Password=asdf&....
```

Что именно писать - придётся читать формочку за странице настройки данного модема.

Возможно, также придётся использовать опцию --post=data

Мне кажется, если это удастся, то это удобнее, чем альтернативные решения:

1. cat magic_buttons.txt | nc 192.168.1.1 23 # net-analyzer/netcat либо net-analyzer/gnu-netcat

2. использовать какое-то более тяжеловесное орудие типа Perl::CGI (если не ошибаюсь)

3. пытаться перевести модем в режим bridge, и делать уже всё уже на машине

Затрудняюсь заранее сказать, какие из упомянутых способов вообще могут привести к успеху.

----------

## LupoAlberto

Если для подключения используете net-dialup/rp-pppoe, команду pppoe-start можно запускать с различными конфигурационными файлами.

----------

## Cleus

Нет, соединение никакое устанавливать не нужно, просто сеть подымается и все. Удобно. Но с логинами / паролями нужно что-то делать.

Update

Узнал, что этот модем поддерживает администрирование по SNMP. Что это за зверь такой?

----------

## fank

sorry for english, I'm in Romania

try Perl::Telnet module

there was an article in SA a few months ago how to control Cisco router using perl

I used this method successfully with cisco but it will work with any telnet capable device.

----------

## Cleus

Ага, нашел такой модуль. Правда вдля меня это уж черезчур сложно, к сожалению.

----------

## Laitr Keiows

 *Cleus wrote:*   

> Ага, нашел такой модуль. Правда вдля меня это уж черезчур сложно, к сожалению.

 

Можно просто сокетами, на любом удобном языке программирования, хоть Python хоть PHP хоть C.

Там ничего сложного.

----------

## Cleus

Ага, я конечно знаю Си, perl, php и другие страшные слова  :Smile: 

Увы мне, но ни разу не знаком с этим делом.

----------

## user11

Неужели заботать модуль telnet проще, чем разобраться с полями формочки запроса?

В любом случае, даже с телнет-интерфейсом, там вряд ли нужно что-то менее тривиальное, чем просто скормить в telnet-порт подходящую последовательность символов (пароль - переход в пункт меню - заполнение полей - enter). Для этого вообще никакие языки не нужны (кроме, пожалуй, bash в объёме перенаправления stdin, emerge в объёме emerge netcat и netcat в объёме nc -q).

Ей-богу, не понимаю, в чём сыр-бор.

----------

## fank

http://www.samag.ru/cgi-bin/go.pl?q=articles;n=01.2006;a=01

----------

## Cleus

 *user11 wrote:*   

> 
> 
> Ей-богу, не понимаю, в чём сыр-бор.

 

Я не программер, мне тяжело понимать вещи, для которых какая-то нужна более или менее специфическая основа. Грубо говоря - знание соответствующего алфавита, например.  

Подскажи, если знаешь, как  это можно сделать, на простом примере.

----------

## fank

ну куда уж проще чем послать в телнет строку и принять ответ

пример кто-нить смотрел или я зря тратил время на поиск точной ссылки на статью

там все настолько разжёвано, что любой, кто видел basic сумеет разобраться

----------

## user11

Подскажу.

Попробовал wget'ом на своём P660R.

команда номер один - логин:

```
$ wget "http://modem/Forms/rpAuth_1?LoginPassword=ZyXEL+ZyWALL+Series&hiddenPassword=XXX&Prestige_Login=Login"

```

команда номер два - установка настроек:

```
$ wget --post-data="wan_RemoteName=MyISP&wan_Mode=00000000&wanModeFlag=0&wan_Encapsulation=PPPoE&wanEncapFlag=0&wan_Multiplex=LLC&wan_VPI=1&wan_VCI=50&

wan_QoS=UBR&wan_PeakRate=0&wan_SustainRate=0&wan_BurstSize=0&wan_ServiceName=&wan_UserName=USERNAME&wan_Password=PASSWORD&wan_DynIP=DynamicIP&

wan_ConnectSel=Conn_Keep_Alive&wan_PPPoE_Pass=00000000&wan_Save=Apply" http://modem/Forms/WAN_1  
```

(внимание: вторая команда разбита на несколько строк только для того, чтобы она хорошо отобразилась в форуме. Давать её лучше одной строкой)

здесь USERNAME и PASSWORD во второй команда - это соответственно логин и пароль у провайдера.

Вот с XXX в первой сложнее. Это, видимо, зашифрованный пароль на сам модем.

Откуда брать XXX? Постараюсь объяснить это одновременно с ответом на вопрос, откуда взялось всё остальное (особенно если у тебя другой модем).

Шаг 1. Освежаем в памяти, как вообще через Web-интерфейс настраивать то, что нам нужно. Вспомнили? Ок, пошли дальше  :Smile: 

Далее буду предполагать, что сначала надо сделать login, а затем заполнить формочку с параметрами и нажать apply. Итого 2 формочки - логина и настройки.

Шаг 2. Заполучаем формочку логина.

Открываем в браузере web-интерфейс модема. При необходимости разлогиниваемся, чтобы получить страничку с "введите пароль". Сохраняем эту страничку (и формочку вместе с ней) в файл.

Шаг 3. Заполняем и готовимся отправлять формочку логина.

Теперь открываем эту формочку *текстовым* редактором (напр., vi, nano или kwrite). Находим в ней (по слову POST) строчку типа

```
<FORM METHOD="POST" ACTION="/Forms/rpAuth_1"

```

Заменяем метод POST на метод GET, чтобы заставить браузер сгенерировать строку параметров в удобном для нас виде.

Открываем этот сохранённый файл браузером. Видим ту же формочку логина, что и сначала. Заполняем, нажимаем "ОК". Браузер идёт по указанной в формочке ссылке (/Forms/rpAuth_1) - но, разумеется, ничего там не находит, т.к. мы не на сайте "http://modem/", а на сайте "file:///". Это нормально. Но зато в строке URL мы видим то, что нужно для "команды номер один". Осталось только заменить file:/// на http://modem/, заключить это в кавычки и прибавить волшебное слово wget  :Smile: 

Шаг 4. Заполучаем формочку настройки параметров.

Идеологически тут аналогично формочке логина. Но технически в моём случае были важные отличия. В моём модеме web-интерфейс сделан с фреймами, и поэтому в строке адреса броузера всегда горит http://modem/rpSys.html. Это, скажем так, не благоприятствует успешному выполнению этого шага. Поэтому, когда мы только вошли в меню управления модемом, переходим на нужную нам страничку настроек (см. шаг 1) не просто кликом в соответствующую ссылку, а операцией "открыть в новом окне" или "в новой вкладке". Тогда оно откроется без меню навигации. И вот уже оттуда делаем save as.

Шаг 5. Заполняем и готовимся отправлять формочку настроек.

Точно также меняем метод с POST на GET. Точно так же открываем в браузере, заполняем формочку, жмём нужную кнопку и смотрим полученный URL. Готово. Заполненная формочка перед нами. Однако с её отправкой у меня обнаружилась особенность. Оказалось, что мой модем не принимает эти настройки методом GET. Чтобы воспользоваться методом POST, переносим все параметры в строку --post-data, а в URL оставляем только адрес самого ресурса. Пример и показан в "команде 2".

Всё.

Разумеется, в твоём случае могут оказаться какие-то свои особенности, скажем, что логин тоже надо делать только методом POST.

И ещё оговорка. Я не уверен, что одна и та же "команда 1" будет логинить неограниченное число раз. Это надо попробовать и проверить.

Наверное, ещё дам несколько рекомендаций.

1. запусти в соседнем окне ping www.ru, и пусть оно будет всегда у тебя перед глазами. Чтобы видеть, что происходит.

2. Если происходит что-то непонятное - смотри ответ, который дал модем wget'у. Wget его сохраняет в файл (собственно, это его основная работа), его тоже можно открыть браузером.

3. Перед тем, как проверять, хорошо ли логинится первая команда, делай logout, а то проверять будет нечего.

PS. просьба, если я по недосмотру недовырезал какую-то личную информацию из приведённых выше команд (логины, пароли, явки или что-то ещё), дайте знать.Last edited by user11 on Sat Aug 04, 2007 6:04 pm; edited 1 time in total

----------

## Cleus

Ты титан! Все работает, и главное, я все понял и смог повторить!  :Smile: ))  

Считай, что следующее пиво за мой счет!  :Smile: 

----------

## latin boy

hi, 

my carrier doesn't give passwords from modem

can i reset the password without reset the modem??

thank you for your time

----------

