Páginas

sexta-feira, 27 de maio de 2011

FreeBSD - PPPoE Discador

Script1
#!/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
# ---------------------------------------------------------------------------
#
# [-=> Alteracoes <=-] # # v2.00 - [01/11/2003] # # - Versao totalmente rescrita do script, agora em perl, totalmente # independentenao do sh, fetch, lynx ou ping !! # # - Suporta o novo esquema de autenticacao do Velox da Telemar # tanto no modo comercial, como residencial, via o metodo CGI POST, # e permite mais flexibilidade nas futuras *inesperadas* mudancas # # - Lista dos provedores residenciais atualizada. # # ------------- # Configuracao # ------------- # Define se seu velox e' residencial ou comercial, se for residencial, # voce precisa de um login/senha em um provedor, se for comercial, # acessa diretamente pela telemar. # # Valores : 'RES' = Residencial # 'COM' = Comercial $VELOX = 'COM'; # Caso use o sistema comercial, pode ser necessario alterar a string # abaixo de acordo com a sua regiao (esta e' a string de conexao # para a regiao da Bahia, outras opcoes comentadas abaixo, veja no codigo # fonte html da autenticacao velox de sua regiao, caso tenha duvidas) # # Somente uma das opcoes deve estar descomentada ! Essa opcao so eh # util se voce estiver usando o modo COMERCIAL, caso esteja no modo # residencial, nao surtira qualquer efeito, pode ignorar esta opcao. # $COMERCIAL='AABA'; # $COMERCIAL='AARJ'; # $COMERCIAL='AAMG'; # $COMERCIAL='AABA'; # $COMERCIAL='AARJ'; # Caso use o sistema residencial, voce precisa definir # o nome do seu provedor, o nome tem que ser EXATAMENTE como # esta na pagina de autenticacao no velox, aqui estao alguns # exemplos, (aparentemente agora varia o final, por regiao, # em alguns provedores com o TERRA) # # Somente uma das opcoes deve estar descomentada ! Essa opcao so eh # util se vc estiver usando o modo RESIDENCIAL, caso esteja no modo # comercial, nao surtira qualquer efeito, pode ignorar esta opcao. # $PROVEDOR='TELEMAR'; # $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'; # Seu Login no Provedor (!! somente se for residencial !!) # $LOGIN = '792466097'; $LOGIN = 'seulogin'; # Sua Senha no Provedor (!! somente se for residencial !!) # $SENHA = '792466097'; $SENHA = 'suasenha'; # ---------------------------------------- # -=*=- FIM DA SECAO DE CONFIGURACAO -=*=- # ---------------------------------------- # Nao altere mais nada abaixo, toda configuracao pode ser feita, # alterando as variaveis acima, qualquer alteracao abaixo pode # tornar seu script nao 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 "-----------------------------------------------------------------------------\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 "-----------------------------------------------------------------------------\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 opcoes \"RES\" ou \"COM\" sao possiveis!!\n"; exit 2; } use IO::Socket; sub autentica() { $sock = new IO::Socket::INET ( PeerAddr => $HOST, PeerPort => $PORTA, Proto => 'tcp');
die("!ERRO! Nao e' possivel conectar em $HOST !!\n") unless $sock;

print "!OK! Conexao 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 "-----------------------------------------------------------------------------\n";

print "!OK! Verificando se voce ja esta autenticado...\n";
if ( ping('rapido') )
{
print "!OK! Voce JA esta autenticado !\n";
exit 0;
}

print "!OK! Voce ainda nao esta autenticado.\n";

autentica();
while ( not ping('completo') )
{
print "!ERRO! Servidor nao liberou acesso, possivel senha ou configuracao incorreta...\n";
print "!OK! Tentando novamente...\n";
autentica();
}

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

# EOF
Script2
#!/usr/local/bin/python

import os,sys,string

t=os.system("/usr/local/sbin/fping 200.187.144.26")
u=os.system("/usr/local/sbin/fping 200.165.164.250")

if t == 0 and u == 0:
pass
print "ADSL esta ativo para endereco 200.187.144.26"
if t == 256 and u == 0:
pass
print "ADSL esta ativo para endereco 200.165.164.250"
if t == 0 and u == 256:
pass
print "ADSL esta ativo para endereco 200.165.164.250"
if t == 256 and u == 256:
os.system("/usr/bin/killall -9 ppp")
os.system("/sbin/ifconfig tun0 delete")
os.system("/sbin/ifconfig tun0 down")
os.system("/sbin/ifconfig tun1 delete")
os.system("/sbin/ifconfig tun1 down")
os.system("/usr/sbin/ppp -ddial pppoe")
os.system("/bin/sleep 20")
os.system("/etc/ppp/id-velox.sh")
os.system("/bin/echo 'Link Parou as ' `date` >> /etc/ppp/conexao.log")
print "ADSL esta parado"

Nenhum comentário:

Postar um comentário