Имя пользователя:
Пароль:
 

Показать сообщение отдельно
pva pva вне форума Автор темы

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


в общем что-то более-менее похожее на то, что хотелось, всё-таки получается у меня только с помощью awk:
Код: Выделить весь код
pptp АДРЕС1 noauth user ПОЛЬЗОВАТЕЛЬ1 password ПАРОЛЬ1 | awk '
/Using\ interface/{ppdev=$3}
/local\ \ IP address/{ppaddr=$4}
/remote\ IP address/{ppraddr=$4}
/ip-up\ finished\ .+\ status\ =\ 0x0/{sub("\.[0-9]+$", "\.0", ppaddr);print("route add -net " ppaddr " netmask 255.255.255.0 dev " ppdev СЮДА_ВСТАВИТЬ_КОМАНДУ)|"bash"}
/ip-down\ finished/{print("route del -net " ppraddr " netmask 255.255.255.255")|"bash"}'

СЮДА_ВСТАВИТЬ_КОМАНДУ такую:

&& pptp АДРЕС2 noauth user ПОЛЬЗОВАТЕЛЬ2 password ПАРОЛЬ2 require-mppe | awk '
/Using\ interface/{ppdev=$3} /local\ \ IP address/{ppaddr=$4}
/remote\ IP address/{ppraddr=$4}
/ip-up\ finished\ .+\ status\ =\ 0x0/{sub("\.[0-9]+$", "\.0", ppaddr);print("route add -net " ppaddr " netmask 255.255.255.0 dev " ppdev)|"bash"}
/ip-down\ finished/{print("route del -net " ppraddr " netmask 255.255.255.255")|"bash"}' &
если не считать СЮДА_ВСТАВИТЬ_КОМАНДУ, то программа для awk абсолютно одинаковая, вызов pptp отличается именем, паролем, адресом и если в имени есть '\\', то добавляется require-mppe.

Три вопроса:
1) Можно как-то это причесать? чтобы, например, получился умный скрипт nested_pptp, который вызывается типа так:
Код: Выделить весь код
(echo АДРЕС1 ИМЯ1 ПАРОЛЬ1 && echo АДРЕС2 ИМЯ2 ПАРОЛЬ2) | nested_pptp
2) Будет ли работать VPN через VPN, если вконце строчки СЮДА_ВСТАВИТЬ_КОМАНДУ убрать & ? Или там чёнить самозаблокируется?

3) можно ли сделать проще/умнее (ip-up и ip-down трогать не хочется, т.к. не для любого соединения теоретически надо подсеть прописывать)

Отправлено: 00:43, 26-02-2010 | #3