Manual do Kppp
Anterior | Capítulo 4. Configuração de uma Conta | Próxima

# 4.5. Script de Login

Editar Script

  Use esta janela de diálogo para escrever um script de conexão ao seu provedor. Utilize o mini-terminal e as informações fornecidas pelo seu provedor Internet para entender em que seqüência as ações devem ser executadas.

  - `Expect:` o Kppp esperará pela recepção do texto especificado;

  - `Send:` o Kppp transmitirá o texto especificado;

  - `Scan:` o Kppp varrerá os dados recebidos à procura do texto especificado, e irá armazenar todos os caracteres depois desse texto até o fim da linha num buffer interno. Espaços em branco iniciais e finais serão desprezados;

  - `Save:` gravar o texto previamente varrido no registro espcificado. Por enquanto, o único registro chama-se 'password';

  - `Pause:` fazer uma pausa pelo número especificado de segundos;

  - `Hangup:` o Kppp fará o modem desconectar;

  - `Answer:` o Kppp fará o modem esperar por ligações externas;

  - `Timeout:` muda o timeout (tempo máximo de espera) padrão para o número de segundos especificado durante a execução do script. Você pode mudar o timeout várias vezes durante a execução de um script, se for necessário;

  - `Prompt:` Pede ao usuário do Kppp para digitar um texto, e fornece o texto especificado como dica. As letras vão aparecendo à medida em que são digitadas. Se o texto especificado inclui dois sustenidos (##), eles serão substituídos pelo buffer de varredura;

  - `PWPrompt:` Pede ao usuário que digite um texto, e mostra o texto especificado como dica. Um asterisco será mostrado para cada caractere digitado, o que torna esse recurso ideal para digitação de senhas;

  - `ID:` Se o campo ID (identificação) da janela principal do Kppp estiver preenchido, este comando manda o ID. Se o campo não estiver preenchido, pede ao usuário que digite um ID, e mostra o texto especificado como dica. O usuário verá o que digita. Num segundo passo, como por exemplo na segunda tentativa de login, o sistema pede ao usuário que digite o ID independentemente do campo ID da janela principal;

  - `Password:` Se o campo 'senha' da janela principal do Kppp estiver preenchido, manda aquela senha. Se não estiver preenchido, o sistema pede que o usuário digite a senha, e mostra o texto especificado como dica. Um asterisco será impresso para cada caractere digitado. Num segundo passo, como por exemplo na segunda tentativa de login, o Kppp pede ao usuário que digite a senha independente do campo 'senha' da janela principal estar ou não preenchido;

  - `LoopStart:` o Kppp aguardará pelo texto especificado. Ele armazenará este texto pois será usado por LoopEnd.

  - `LoopEnd:` o Kppp aguardará pelo texto especificado para sair do ciclo. Se o texto especificado por LoopStart for recebido primeiro, a primeira linha de comando após LoopStart assumirá o comando do script. Isso permite a repetição de digitação de nome/senha em caso de erro na primeira tentativa.

## 4.5.1. Scripts de exemplo

Este é um script bem simples que eu poderia usar para conectar-me ao meu provedor Internet:

     Expect      ID:                        # aguarda por ID:
     Send        acme                       # Coloque sua ID aqui em lugar de acme
     Expect      word:                      # aguarda por 'password'
     Send        4u3fjkl                    # manda minha senha '4u3fjkl'
     Expect      aceito                     # meu provedor aceitou a conexão
     Send        ppp                        # Inicia o PPP do lado do provedor

Eis um script para a mesma conta, mas com digitação manual de identificação e senha. Este script solicitará a digitação do ID e da senha a cada conexão, não importa se os campos ID e senha estão preenchidos na janela principal do Kppp. Este script também ilutra o uso da estrutura LoopStart/LoopEnd. Se alguma coisa der errado durante o procedimento de login, por exemplo se eu digitar a senha errada, meu provedor Internet mandará uma mensagem de erro e reiniciará o ciclo de identificação/senha ao mostrar o texto "ID:" novamente. Se o texto "ID:" for detectado antes do comando LoopEnd, Kppp recomeçará a executar o script desde o comando LoopStart.

     LoopStart   ID:                        # Aguarda pelo texto 'ID:'
     Prompt      Enter ID:                  # Pede que eu digite o ID, e transmite
     Expect      word:                      # aguarda pelo texto 'password'
     PWPrompt    Digite Password:           # Pede que eu digite a senha, e transmite
     LoopEnd     Aceito                     # O provedor deu sinal verde
     Send        ppp                        # Inicia uma conexão PPP para mim

Aqui vai o script que eu realmente uso para conectar com meu provedor: este script pede a identificação e a senha somente se eles não estiverem preenchidos nos respectivos campos da janela principal do Kppp.

     LoopStart   ID:                        # aguarda pelo texto 'ID:'
     ID          Digite ID:                 # Pede-me o ID e transmite
     Expect      word:                      # aguarda pelo texto 'password'
     Password    Digite senha               # Pede-me a senha e transmite
     LoopEnd     aceito                     # O provedor aceitou a senha
     Send        ppp                        # Inicia minha conexão PPP na
                                            # máquina do provedor

Eis um script que eu uso para conectar com um provedor Internet, que usa um esquema de autenticação de desafio/resposta. Normalmente você ganha um dispositivo de hardware (um cartão com um display e teclas numéricas) de seu provedor. Você precisa saber a senha para usar o dispositivo. Depois de ter discado, o provedor mostra o texto de desafio. Você digita esse desafio em seu dispositivo e recebe uma senha como resposta. Então você deve digitar essa senha.

     LoopStart   ID:                        # Aguarda pelo texto "ID:"
     ID          Digite ID:                 # Pede que eu digite o ID e transmite-o
     Scan        Desafio:                   # Varre 'Desafio:' e guarda o que vem
                                            # depois dele até o fim da linha;
     Expect      Senha:                     # Aguarda pelo texto 'Senha:'
     Prompt      seu desafio é ## - Digite Senha
                                            # Pede que eu digite a senha, e transmite
     LoopEnd     concedido                  # O provedor dá sinal verde
     Send        ppp                        # Inicia a conexão PPP no lado do
                                            # provedor

A listagem a seguir mostra o procedimento de login de um provedor Internet fictício, que fornece uma nova senha a cada login. A nova senha precisa ser verificada e guardada para a próxima sessão.

     Universidade de Gomorra

     Login: satiro
     Password:
     A senha para sua próxima sessao é: YLeLfkZb
     Por favor anote-a e digite para verificacao.
     Verificação:YLeLfkZb

     1 = telnet
     2 = SLIP
     3 = PPP

     Sua escolha:

Kppp pode ser usado para fazer o trabalho tedioso por você, e elimina o risco de perder aquele pequeno pedaço de papel onde está escrita a sua senha atual. A parte chave do script a seguir é uma combinação das palavras-chave Scan e Save.

     Expect      Login:                     # aguarda pelo texto "Login:"
     ID                                     # transmite a identificação
     Expect      Password:                  # aguarda pelo texto "Password:"
     Password                               # transmite a senha
     Scan        é:                         # aguarda por '... proxima sessao é:' e
                                            # guarda a próxima senha
     Save        password                   # grava a nova senha para usar depois
     Expect      Verificacao:               # aguarda o texto 'Verification:'
     Password                               # manda nova senha
     Expect      escolha:                   # aguarde por um prompt de escolha
                                            # entre várias opções (telnet, SLIP, PPP)
     Send        3                          # escolhe a opção 3, que é o PPP

Anterior | Principal | Próxima
Gateway | Acima | Contabilidade