Так как модем настроен как роутер, совсем неудобно для переключения из инета в местную локалку или наоборот постоянно заходить через веб- или telnet-интерфейс и править имя пользователя PPPoE вручную. Поэтому написал вот такой достаточно простой скриптик для автоматизации этого дела. Для отправки команд через telnet использую замечальнейшую программку expect, собственнно, специально и созданную для автоматизации подобных подключений.

Скрипт:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/bash

mess='PPP Username   ='
modem_ip='192.168.1.1'
password='admin'
node='0'
## получаем имя пользователя
Origname=`expect -c 'spawn telnet '$modem_ip';
expect "Password" {send "'$password'\r"};
expect "MT880" {send "show wan node '$node'\r"};
send "exit\r";expect eof' | grep "$mess"`
## если пусто,то ругаемся и валим
if [ ${#Origname} == 0 ]
then
    echo "Error due connecting to modem."
    exit
fi
## обрезаем ненужные символы
Origname=${Origname#$mess}
Origname=${Origname:1}
## смотрим какое имя юзера получили и меняем на нужное
if [ "${Origname:0:1}" == "D" ]
then
    echo "Now connected to internet."
    Newname=${Origname/"D"/"LD"}
else
    echo "Now connected to regional network."
    Newname=${Origname:1}
fi
## устанавливаем новое имя пользователя
expect -c 'spawn telnet '$modem_ip';expect "Password" {send "'$password'\r"};
expect "MT880";send "set wan node '$node'\r";
send "set wan ppp username '$Newname'\r";send "set wan save\r";
send "exit\r";expect eof'