Вкладка Скрипт логина

Рисунок 1.11. Вкладка Скрипт логина в разделе Соединения

Вкладка Скрипт логина в разделе Соединения

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

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

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

Ожидать

Kppp будет ожидать получения заданной строки.

Отправить

Kppp отправит заданную строку.

Сканировать

Kppp будет сканировать входящий поток данных на предмет наличия заданной строки и сохранит все символы, начиная от конца строки и до начала новой, во внутреннем буфере. Символы пробелов как в начале строки, так и в конце будут проигнорированы.

Сохранить

Постоянно хранить заранее просканированную строку в заданном регистре. На данный момент единственным доступным является регистр password.

Приостановить

Приостановить на заданное число секунд.

Повесить трубку

Kppp отдаст модему команду повесить трубку.

Ответ

Kppp установит модем в режим ответа.

Timeout

Изменить таймаут по умолчанию на заданное число секунд при выполнении скрипта. При необходимости можно изменять таймаут в скрипте несколько раз.

Prompt

Запросить у пользователя Kppp ввод строки в ответ на заданную строку- подсказку. Набранные символы будут видны пользователю. Если в заданной строке содержится метка ##, в таком случае она будет заменена на содержимое внутреннего буфера сканирования, то есть на значение, сохранённое командой scan.

PWPrompt

Запросить у пользователя Kppp ввод строки в ответ на заданную строку-подсказку. Каждый введённый пользователем символ будет отображён символом Звёздочка.

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

Если поле Имя пользователя на главном экране Kppp заполнено, — отправить имя пользователя. Если поле Имя пользователя не заполнено, — запросить пользователя Kppp ввести имя пользователя в ответ на заданную строку-подсказку. Набранные символы будут отображены. На следующем шаге, например, в цикле повторения или же при авторизации в режиме обратного звонка, запрос будет выводиться вне зависимости от заполнения поля Имя пользователя.

Пароль

Если поле Пароль на главном экране Kppp заполнено, — отправить пароль. Если поле Пароль не заполнено, — запросить пользователя Kppp ввести пароль в ответ на заданную строку-подсказку. Каждый набранный символ будет отбражен символом Звёздочка. На следующем шаге, например, в цикле повторения или же при авторизации в режиме обратного звонка, запрос будет выводиться вне зависимости от заполнения поля Пароль.

Начало цикла

Kppp будет ожидать получения заданной строки и сохранит её для использования переменной Конец цикла.

Конец цикла

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

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

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

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

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

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

Ниже приведён пример скрипта с запросом имени пользователя и пароля. Этот скрипт каждый раз запрашивает имя пользователя и пароль, вне зависимости от заполнения полей Имя пользователя и пароль на главном экране Kppp.

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

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

Пример 1.3. Запрашивает сведения, не указанные в основном диалоге

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

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

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

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

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

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

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

 
	  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