13 agosto 2008

Speedy - Script de autenticação automática Speedy Negócios

Procurei e testei inumeros scripts, porém quase todos continham erros ou incorreções para efetuar a autenticação no Speedy Negócios.

Refiz o script e inclui um log para manter um histórico das conexões.

Salve este script com o nome que desejar, dê permissões para execução do mesmo chmod 755 < nome_do_script> e coloque o mesmo para executar a cada

15 minutos no cron

Altere as variáveis para o seu caso, funciona muito bem no Debian etch.

#!/bin/bash

###########################################

# Script de autenticação speedy negócios

# ver. 1.0

# data 28/04/2008

###########################################

### VARIAVEIS ###

SPEEDYZONEIP="200.171.222.97"

#SPEEDYZONEIP="200.171.222.93"

LOGIN=internet # coloque o seu login

DOMINIO=speedy.com.br # coloque o seu domínio de autenticação

SENHA=internet # coloque sua senha

SPEEDYZONE="http://${SPEEDYZONEIP}/wsc/servlet/logon.do";

URL=registro.br # use uma url sem java e com alta disponibilidade

ARQTEMP=/etc/firewall/temp.txt # coloque o path completo do arquivo temporário

ARQLOG=/etc/firewall/report_auth.log # coloque o path completo do arquivo de log

### FUNÇOES ###

###########################################

# Função para redução do arquivo de log,

# mantêm o arquivo de log com um tamanho

# aceitável

###########################################

corrigeLOG() {

# remove o arquivo temporario de transferência

rm -f $ARQTEMP

if [ -e $ARQLOG ];then

# se o arquivo de log existe, verificar quantas linhas existem no arquivo

LINHAS=`cat $ARQLOG | wc -l`

if [ $LINHAS -gt "2700" ];then

# copiar 2000 linhas de trás pra frente e salvar em um arquivo temporário

# e enviar os textos do console para null

tail -n 2000 $ARQLOG > $ARQTEMP 2> /dev/null

# apagar arquivo de log

rm -f $ARQLOG

# renomear o arquivo temporario como arquivo de log

mv -f $ARQTEMP $ARQLOG

fi

fi

}

###########################################

# Função de autenticação

# cuidado com esta função qq erro imperirá

# a autenticação.

# NOTA : A telefonica custuma mudar os

# endereços e rotinas com alguma frequencia

# já houveram pelo menos 3 alterações desde

# 2002 nesta rotina.

# Caso o sistema não autentique verifique

# pelo browser gráfico os endereços e variáveis

# corretas e altere o script para se adequar

# as novas rotinas.

###########################################

speedy_auth() {

# este comando abaixo é a rotina de autenticação do speedy

lynx -dump

$SPEEDYZONE\?opcion=internet\&CPURL=http\%3A\%2F\%2F${URL}\%2F\&username=${L

OGIN}\%40${DOMINIO}\&password=${SENHA}|grep -i "salvar" >/dev/null

if [ "$?" = "0" ];then

echo "Erro de autenticação de Speedy! `date +"%T de %d/%m/%Y"`" >> $ARQLOG

exit 1

fi

echo "Conexão Ok !! `date +"%T de %d/%m/%Y"`" >> $ARQLOG

}

###########################################

# Função de teste do navegador

# verifica se o lynx está instalado

# se não estiver apt-get install lynx

###########################################

testaNav() {

# testa a presença do nevegador lynx

if ! [ -f "/usr/bin/lynx" ] ; then

# nevegador não intalado o script não funcionará

# portanto sair do script

exit 0;

fi

}

### PRINCIPAL ###

# Verifica se o computador de destino esta pedindo autenticacao

main() {

# verifica se o navegador esta disponivel lynx

testaNav

# reduz, se necessário, o tamanho do log

corrigeLOG

# testa a conexão

ping -c 1 $URL &>/dev/null

# se retornar qq coisa diferente de zero

if [ "$?" != "0" ];then

# conexão não respondeu, então verificar se é a pagina do speedyzone

lynx -dump "$URL" | grep -iEq "speedyzone"

# se a palavra speedyzone foi encontrada então estamos na pagina de login do speedy negocios

if [ "$?" = "0" ];then

# autorizar a conexão

speedy_auth

fi

else

# houve resposta positiva do ping então estamos conectados

echo "Conectado !!! `date +"%T de %d/%m/%Y"`" >> $ARQLOG

exit 1

fi

}

# Chamada da rotina principal

main

exit 0;

Fonte: Roberto L. Machado - http://www.Dicas-L.com.br/

Postar um comentário