Manter autenticado o Velox da Telemar

Muitas vezes você sai de casa e deixa seu Velox fazendo um download e neste intervalo sua autenticação expira e sua conexão fica ociosa. Neste artigo veremos uma forma de manter o Velox autenticado o tempo todo, evitando tal tipo de dor de cabeça.

[ Hits: 22.511 ]

Por: Paulo Gustavo Tillmann em 23/11/2003


Introdução



Em primeiro lugar, logado como root, copie o script abaixo para um arquivo e salve o com o nome de id-velox.pl:

#!/usr/bin/perl
#
# ID-Velox v2.00 [01/11/2003] - http://www.isec.com.br/velox
# Por Fabio Vilan aka/nick Duwde,
# fabio -arroba- isec -ponto- com -ponto- br

# Valores : 'RES' = Residencial
# 'COM' = Comercial
# descomente a linha abaixo para serviços do tipo Residencial ou comercial


# $VELOX = 'RES';
# $VELOX = 'COM';

# Caso use o sistema comercial, pode ser necessário alterar a string
# abaixo de acordo com a sua região (esta e' a string de conexão
# para a região da Bahia, outras opções comentadas abaixo, veja no código
# fonte html da autenticação velox de sua região, caso tenha duvidas)
#
# Somente uma das opções deve estar descomentada ! Essa opção so é
# util se você estiver usando o modo COMERCIAL, caso esteja no modo
# residencial, não surtira qualquer efeito, pode ignorar esta opção.
#

# Serviços para o Estado da BAHIA
# $COMERCIAL='AABA';
# Serviços para o Estado de MINAS ou Espírito Santo
# $COMERCIAL='AAMG';
# Serviços para o Estado do RIO DE JANEIRO
# $COMERCIAL='AARJ';

# Caso use o sistema residencial, você precisa definir
# o nome do seu provedor, o nome tem que ser EXATAMENTE como
# esta na pagina de autenticação no velox, aqui estão alguns
# exemplos, (aparentemente agora varia o final, por região,
# em alguns provedores com o TERRA)
#
# Somente uma das opções deve estar descomentada ! Essa opção so é
# util se você estiver usando o modo RESIDENCIAL, caso esteja no modo
# comercial, não surtira qualquer efeito, pode ignorar esta opção.
#

# $PROVEDOR='TERRAMG2';
# $PROVEDOR='AOL';
# $PROVEDOR='ATARDE';
# $PROVEDOR='ATT';
# $PROVEDOR='BIOHARD';
# $PROVEDOR='BITNET';
# $PROVEDOR='BRFAST';
# $PROVEDOR='BRIDGE';
# $PROVEDOR='BRTURBO';
# $PROVEDOR='CPUNET';
# $PROVEDOR='DDN';
# $PROVEDOR='DH';
# $PROVEDOR='DIGIZAP';
# $PROVEDOR='FACILINTERNET';
# $PROVEDOR='GD';
# $PROVEDOR='GLOBO';
# $PROVEDOR='HOTLINK';
# $PROVEDOR='INTERCALL';
# $PROVEDOR='INTERDOTNET';
# $PROVEDOR='INTERNETRJ';
# $PROVEDOR='INTERNETT';
# $PROVEDOR='MICROECIANET';
# $PROVEDOR='NUXNET';
# $PROVEDOR='OLIMPO';
# $PROVEDOR='OXENTENET';
# $PROVEDOR='POWERTRIX';
# $PROVEDOR='PRODASAL';
# $PROVEDOR='SEVEN';
# $PROVEDOR='SKNET';
# $PROVEDOR='STL';
# $PROVEDOR='SUPERIG';
# $PROVEDOR='SUPRANET';
# $PROVEDOR='TERRAMG2';
# $PROVEDOR='TERRAMG4';
# $PROVEDOR='WAVENET';

# Descomente essa linha para serviços residenciais e informe seu usuário
# $LOGIN = 'seuusuario/conta';

# Descomente essa linha para serviços residenciais e informe sua senha
# $SENHA = 'suasenha';

# ----------------------------------------
# -=*=- FIM DA SEÇÃO DE CONFIGURAÇÃO -=*=-
# ----------------------------------------
# Não altere mais nada abaixo, toda configuração pode ser feita,
# alterando as variáveis acima, qualquer alteração abaixo pode
# tornar seu script não funcional.

$HOST = 'www.veloxzone.com.br';
$PORTA = 80;
@HOSTS =('mx.uol.com.br','mx.terra.com.br','mail.telemar.net.br');
$HOSTPORTA = 25;
$HOSTTIMEOUT = 2;
$RES_URL="/serviceLogon";
$RES_POST="service=internet_$PROVEDOR&fcn=serviceLogon&ac=home& usr=&username=$LOGIN&password=$SENHA&OK=OK";
$COM_URL="/serviceStart?service=internet_$COMERCIAL";
$COM_POST="confirmed=true";

print "-" x 80 . "\n";
print "       ID-Velox v2.00 [01/11/2003] - http://www.isec.com.br/velox\n";
print " Por Fabio Vilan aka/nick Duwde, fabio -arroba- isec -ponto- com -ponto- br\n";
print "-" x 80 . "\n";

if ($VELOX eq 'RES')
   {
        print "!CONFIG! Modo Residencial\n";
        print "!CONFIG! Provedor : $PROVEDOR\n";
        print "!CONFIG! Login : $LOGIN\n";
        $URL=$RES_URL;
        $POST=$RES_POST;
   }
elsif ($VELOX eq 'COM')
   {
        print "!CONFIG! Modo Comercial\n";
        print "!CONFIG! Regiao : $COMERCIAL\n";
        $URL=$COM_URL;
        $POST=$COM_POST;
   }
else
   {
        print "!ERRO! Tipo do velox mal configurado, edite o script !!\n";
   print "!ERRO! Somente as opções \"RES\" ou \"COM\" São possíveis!!\n";
        exit 2;
   }

use IO::Socket;

sub autentica()
   {
   $sock = new IO::Socket::INET (   PeerAddr => $HOST, PeerPort => $PORTA, Proto => 'tcp');
   die("!ERRO! Não e' possível conectar em $HOST !!\n") unless $sock;

   print "!OK! Conexão estabelecida com $HOST.\n";
   $sock->print("POST $URL HTTP/1.0\r\n");
   $sock->print("Content-Type: application/x-www-form-urlencoded\r\n");
   $sock->print("Host: $HOST\r\n");
   $sock->print("Content-Length: " . length($POST) . "\r\n");
   $sock->print("\r\n$POST\r\n\r\n\r\n");
   print "!OK! Aguardando resposta do servidor....\n";
   while ($sock->getline()) {}
   $sock->close();
   }

sub ping($)
   {
   $x=0;
   foreach (@HOSTS)
      {
      if (($_[0] eq 'rapido') && ($x>0))
         { return 0; }

      $c = new IO::Socket::INET (
             PeerAddr => "$_",
             PeerPort => $HOSTPORTA,
             Proto => 'tcp',
             Timeout => $HOSTTIMEOUT
      );
      if ($c)
         {
         $c->close();
         return 1;
         }
      $x++;
      }
   }

print "-" x 80 . "\n";

print "!OK! Verificando se você já esta autenticado...\n";
if ( ping('rapido') )
   {
   print "!OK! Você JÁ esta autenticado !\n";
   exit 0;
   }

print "!OK! Você ainda não esta autenticado.\n";

autentica();
while ( not ping('completo') )
   {
   print "!ERRO! Servidor não liberou acesso, possível senha ou configuração incorreta...\n";
        print "!OK! Tentando novamente...\n";
   autentica();
   }

print "!OK! Autenticado com sucesso !!\n";

# EOF

##### fim do script ######

Agora copie o arquivo id-velox.pl para o diretório /etc:

# cp id-velox.pl /etc/

Altere os atributos do arquivo de modo que ele se torne um arquivo executável:

# chmod 755 /etc/id-velox.pl

Crie um arquivo de agendamento, ou seja, vamos agendar o script para ser executado a cada minuto, dessa forma nosso velox sempre estará devidamente autenticado:

# crontab -e

Adicionar a linha:

*/1 * * * * /etc/id-velox.pl 1>/dev/null 2>/dev/null

Reinicialize o cron para carregar a nova entrada (opcional):

# killall -HUP crond

Verifique se o crontab está sendo executando acompanhando seu log com a linha de comando:

# tail -f /var/log/cron

É isso ai pessoal, agora é só navegar...

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Instalação do Apache, MySQL e PHP

Servidor web com CentOS + Apache

Configurando a internet e compartilhando a rede local, com o Kurumin 6 (IPs estáticos)

Você conhece o RouterOS Mikrotik?

Gravando conversas no Skype do Linux

  
Comentários
[1] Comentário enviado por lordello em 23/11/2003 - 14:57h

É necessário mesmo matar o crontab? E como faz pra voltar a executá-lo, você não disse. Outra coisa, esse */1 faz o quê? Essa seria a casa dos minutos do crontab. O script seria executado a cada minuto? Se por algum motivo o script para, eu uso esse script e ás vezes ele demora a fechar, o crontab vai rodar outra instância dele depois do tempo definido?
Falow!

[2] Comentário enviado por fabio em 23/11/2003 - 15:04h

Me intrometendo no assunto, acho que não é necessário reiniciar o crontab, ele recarrega a nova tabela automaticamente. Lordello, o "kill -HUP" não "mata" e sim envia um sinal de "reinício" ao processo. Para matar é "kill -TERM", por exemplo.

O */1 neste caso é de 1 em 1 minuto, seria similar a * apenas. E neste exemplo acho que vai rodar uma nova instância do processo sim, o que eu faria era colocar a linha do crontab assim:

* * * * * killall -TERM id-velox.pl; /etc/id-velox.pl 1>/dev/null 2>/dev/null

Assim ele mata as instâncias que por algum motivo ficaram residentes em memória ou ainda estão em execução antes de executar uma nova.

[3] Comentário enviado por ecr em 27/11/2003 - 16:10h

Possuo o velox comercial no estado de MG, fiz a alteração da variável
$VELOX = 'COM' e $COMERCIAL='AAMG'
Primeiro me conectei no adsl com o comando: adsl-start e o linux criou a interface ppp0
mas quando rodo o script de autenticação recebo a seguinte mensagem:Servidor não liberou acesso, possível senha ou configuração incorreta...

Alguém tem idéia do que está acontecendo

[4] Comentário enviado por alphainfo em 14/05/2004 - 09:58h

Ei ecr,

Comigo aconteceu a mesma coisa... não sei porque, mas o que fiz foi fazer um pequeno script que pára a rede, deleta a rota e faz tudo de novo... comigo funcionou... tente ele, segue abaixo:

#!/bin/bash
/etc/rc.d/init.d/adsl-init stop
/sbin/route del default
/etc/rc.d/init.d/adsl-init start
/usr/local/bin/id-velox.pl
cp /etc/resolv.conf.force /etc/resolv.conf
/etc/rc.d/init.d/named stop
/etc/rc.d/init.d/named start
/etc/rc.d/init.d/squid restart

Qq coisa, mail-me!

Valew,

Daniel Freire

[5] Comentário enviado por tuxes em 15/06/2004 - 14:49h

deve ser por um tempo ocisidade na conexão, fizemos um teste deixamos o servidor pingando na net em um provedor conseguimos ficar logados com o mesmo ip por mais de 12 horas o cliente do win deve ter uma ferramenta que inibe esta ociosidade. Experimente fazer este teste

[6] Comentário enviado por leandroleal em 20/07/2004 - 22:23h

Observem que em usa Globo, deverá mudar para GLOBO3 e quem usa Fácil Internet deverá apenas trocar por FACIL, assim:

$PROVEDOR='FACIL';

$PROVEDOR='GLOBO3';

[7] Comentário enviado por koy182 em 26/07/2004 - 21:00h

Pra falar a verdade,
Não intendi NADA
desculpa, :(

[8] Comentário enviado por zito em 12/08/2004 - 18:28h

como executo o script ?
e aonde insiro o script ? no bin?

[9] Comentário enviado por wellingtonMG em 09/12/2005 - 10:50h

mas e o da OI como deve ficar no script... o meu não ta funcionando....


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts