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 ######