Вперед Назад Содержание

5. Создание Скрипта дозвона к провайдеру с помощью kppp

(страничка создана на основе Справочного руководства по kppp) Lauri Watts <lauri@kde.org> Перевод на русский: Александр Лойко Издание 1.01.00 Copyright 2001 Lauri Watts Разрешается копировать, распространять и/или изменять этот документ на условиях лицензии GNU для свободной документации, версии 1.1 или более поздней, опубликованной Фондом Free Software Foundation; без неизменямых разделов, без текста на первой странице, без текста на последней странице. Копия лицензии находится здесь the section entitled "GNU Free Documentation License".

5.1 Теория

Для создания скрипта дозвона для соединения с вашим Интернет-провайдером используйте диалог Kppp->Настройка->Настройка соединения-> Конкретное соединение->Изменить->Скрипт подключения. Вы можете использовать мини-терминал и сведения, предоставленные вашим Интернет-провайдером, для создания необходимого скрипта. Выберите опцию из раскрывающегося списка слева, а затем укажите параметры для выбранного действия в окне редактирования справа. Используйте кнопку Добавить для добавления записи /в конец/ скрипта, который отображается в нижней части диалога. Используйте кнопку Вставить для вставки записи в любое место скрипта, а также кнопку Удалить для удаления строки из скрипта.

Доступные опции:

  • Ожидать (Expect) kppp будет ожидать получения заданной строки.
  • Отправить (Send) kppp отправит заданную строку.
  • Отправить без эха (SendNoEcho) kppp отправит заданную строку без эха.
  • Сканировать (Scan) kppp будет сканировать входящий поток данных на предмет наличия заданной строки и сохранит все символы, начиная от конца строки и до начала новой, во внутреннем буфере. Символы пробелов как в начале строки, так и в конце будут игнорированы.
  • Сохранить (Save) Постоянно хранить заранее просканированную строку в заданном регистре. На данный момент единственным доступным является регистр
  • password.
  • Приостановить (Pause) Приостановить на заданное число секунд.
  • Повесить трубку (Hangup) kppp отдаст модему команду *повесить трубку*.
  • Ответ (Answer) kppp установит модем в режим ответа.
  • Таймаут (Timeout) Изменить таймаут по умолчанию на заданное число секунд при выполнении скрипта. При необходимости можно изменять таймаут в скрипте несколько раз.
  • Форма ввода (Prompt) Запросить у пользователя kppp ввод строки в ответ на заданную строку- подсказку. Набранные символы будут видны пользователю. Если в заданной строке содержится метка *##*, в таком случае она будет заменена на содержимое внутреннего буфера сканирования, то есть на значение, сохраненное командой scan.
  • Форма скрытого ввода (PWPromp) Запросить у пользователя kppp ввод строки в ответ на заданную строку- подсказку. Каждый введенный пользователем символ будет отображен сиволом Звездочка.
  • Имя пользователя (ID) Если поле Имя пользователя на главном экране kppp заполнено, -- отправить имя пользователя. Если поле Имя пользователя не заполнено, -- запросить пользователя kppp ввести имя пользователя в ответ на заданную строку- подсказку. Набранные символы будут отображены. На следующем шаге, например, в цикле повторения или же при авторизации в режиме обратного звонка, запрос будет выводиться вне зависимости от заполнения поля Имя пользователя.
  • Пароль (Password) Если поле Пароль на главном экране kppp заполнено, -- отправить пароль. Если поле Пароль не заполнено, -- запросить пользователя kppp ввести пароль в ответ на заданную строку- подсказку. Каждый набранный символ будет отбражен символом Звездочка. На следующем шаге, например, в цикл е повторения или же при авторизации в режиме обратного звонка, запрос будет выводиться вне зависимости от заполнения поля Пароль.
  • Начало цикла (LoopStart) kppp будет ожидать получения заданной строки и сохранит ее для использования переменной Конец цикла.
  • Конец цикла (LoopEnd) kppp будет ожидать получения заданной строки для выхода из цикла.
  • Если сперва будет получена строка, заданная как Начало цикла, это вызовет переход к к строке после Начала цикла и повторение парного диалога имя_пользователя/пароль.

5.2 Примеры скриптов

Пример простого скрипта логина

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

подключения к Интернет-провайдеру

Expect ID: # ожидать имя пользователя: 
Send myid # замените myid на ваше имя пользователя 
Expect word: # ожидать пароль 
Send 4u3fjkl # отправить пароль '4u3fjkl' 
Expect granted # Интернет-провайдер при успешном логине сообщает 'Permission granted'. 
Send ppp # Эта команда запускает ppp-соединение  
# на удаленном компьютере Интернет- провайдера. 

Скрипт логина, запрашивающий имя пользователя и пароль, а затем зацикливающийся.

Ниже приведен пример скрипта с запросом имени пользователя и пароля. Этот скрипт каждый раз запрашивает имя пользователя и пароль, вне зависимости от заполнения полей Имя пользователя и пароль на главном экране kppp. Этот скрипт также поясняет применение структуры Начало цикла/Конец цикла. Если при процедуре логина происходит сбой, к примеру, при наборе пароля допущена ошибка, Интернет-провайдер выдаст сообщение об ошибке и повторно начнет цикл имя_пользователя/пароль, отправив строку I?:.

Если строка ID: будет получена до обработки параметра Конец цикла, kppp начнет выполнение скрипта со строки с параметром Начало цикла.

LoopStart ID: # ожидать имя пользователя: 
Prompt Enter ID: # запрос на ввод имени пользователя с последующей отправкой. 
Expect word: # ожидать пароль 
PWPrompt Enter Password: # запрос на ввод пароля с последующей отправкой. 
LoopEnd granted # Интернет-провайдер при успешном логине сообщает 'Permission granted'. 
Send ppp # Запуск ppp-соединения на удаленном компьютере 

Скрипт, запрашивающий сведения, не указанные в основном диалоге.

Я использую этот скрипт для подключения к своему Интернет-провайдеру. Скрипт запрашивает имя пользователя и пароль только в том случае, если я не заполнил соответствующие графы в главном диалоге kppp.

LoopStart ID: # ожидать имя пользователя: 
ID Enter ID: # запрос на ввод имени пользователя с последующей отправкой. 
Expect word: # ожидать пароль 
Password Enter Password # запрос на ввод пароля с последующей отправкой. 
LoopEnd granted # Интернет-провайдер при успешном логине сообщает 'Permission granted'. 
Send ppp # Эта команда запускает ppp-соединение на 
# удаленном компьютере Интернет- провайдера 

Скрипт для соединения с Интернет-провайдером, использующим авторизацию с ответами на запросы.

Вот скрипт, который я использую для подключения к Интернет-провайдеру, который требует авторизации с ответами на запросы. Обычно у вас есть устройство типа смарт-карты с дисплеем и калькулятором, предоставленное вам вашим Интернет-провайдером. Чтобы использовать его, вам необходимо знать пароль. Дозвонившись до провайдера, вы увидите запрос, который нужно будет ввести в устройство и получить динамический пароль на вход. Его вам и надо будет ввести.

LoopStart ID: # ожидать имя пользователя: 
ID Enter ID: # запрос на ввод имени пользователя с последующей отправкой. 
Scan Challenge: # сканировать поток до значения 'Challenge' и сохранить все последующие данные до начала новой строки. 
Expect Password: # ожидать пароль 
Prompt Your token is ## - Enter Password # запрос на ввод пароля с последующей отправкой. 
LoopEnd granted # Интернет-провайдер при успешном логине сообщает 'Permission granted'. 
Send ppp # Эта команда запускает ppp-соединение на 
# удаленном компьютере Интернет- провайдера 

Использование опций сканирования и сохранения в скриптах

В следующем логе приводится пример подключения к несуществующему Интернет-провайдеру, который изменяет пароль при каждом новом соединении. Новый пароль должен быть проверен и сохранен для использования при следующем соединении.

University of Lummerland 
Login:mylogin 
Password:  
The password for your next session is: YLeLfkZb 
Please record and enter it for verification. 
Verification:YLeLfkZb 
1 = telnet 
2 = SLIP 
3 = PPP 
Your choice: 

kppp выполнит всю эту работу вместо вас, при этом устранит риск потери клочка бумаги, на котором записан ваш пароль. Ключевым моментом следующего скрипта является использование комбинации опций Сканировать/Сохранить (Scan/Save).

7 Expect Login:  # ожидать запрос на логин 
ID               # отправить имя пользователя 
Expect Password: # ожидать запрос на пароль 
Password         # отправить пароль 
Scan is:         # ожидать значения '... next session is:' and 
                 # сканировать значение пароля 
Save password    # сохранить новый пароль для следующего логина 
Expect Verification: # ожидать значения 'Verification:' 
Password         # отправить новый пароль 
Expect choice:   # ожидать запрос на выбор типа 
                 # соединения (telnet, SLIP, PPP) 
Send 3           # выбрать опцию 3, т. е. PPP 
 

Вперед Назад Содержание

Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости