Arquivo anexado 'magic-velox.py'
Download 1 #!/usr/bin/python
2 # -*- coding: utf-8 -*-
3 import sys
4 import socket
5 from urllib import urlopen
6 import re
7
8 class magic_velox:
9 """Estabelecer uma conexao automatica com o Velox.
10
11 os atributos velox, comercial, provedor, login, senha devem
12 ser alterados para a necessidade de cada pessoa
13 Para vc saber qual valor utilizar para os atributos comercial e provedor,
14 a configuracao e simples, a variavel "velox" recebe o valor 'r' para residencial
15 e 'c' para comercial, se o "velox" for 'comercial', a variavel "comercial"
16 devera ser alterada para o seu tipo de velox comercial, se o "velox" for
17 'residencial' a variavel "provedor" devera receber o valor de seu provedor,
18 para saber qual seu provedor, execute "#python magic-velox.py -l" na linha
19 de comando ou consulte o codigo fonte da pagina de autenticacao do velox
20 Para facilitar, estou postando alguns valores possiveis para a variavel "provedor"
21
22 'SUPERIG3'
23 'GLOBO'
24 'GLOBO3'
25 'GLOBO6'
26
27 """
28
29 def __init__(self,debug=1):
30
31 self.velox = 'r' #Alterar: define o tipo do velox
32 #pode ser 'r' para residencial
33 #ou 'c' para comercial
34
35 self.comercial='AARJ' #Alterar: caso velox igual a 'c' (preciso de mais testes)
36
37 self.provedor ='SUPERIG' #Altear: caso velox igual a 'r'
38
39 self.login = 'seu_login' #Alterar: Login no Provedor
40
41 self.senha = 'sua_senha' #Alterar: Senha no Provedor
42
43 #Nao alterar mais nada, configurar somente ate aqui!
44 self.url = self.post = self.data = ''
45 self.objSock = None
46 self.servidor = 'www.veloxzone.com.br'
47 self.url_lst_servidor = 'http://www.veloxzone.com.br/user/pages/serviceList.jsp'
48 self.porta = 80
49 self.res_url='/vfile/pages/serviceLogon.jsp'
50 self.res_post='service=internet_%s&fcn=serviceLogon&ac=home&usr=&username=%s&password=%s&OK=OK' % (self.provedor,self.login,self.senha)
51 self.com_url='/serviceStart?service=internet_%s' % (self.comercial)
52 self.com_post='confirmed=true'
53 self.debug = debug
54
55 def autentica(self):
56 """Efetua a autenticacao com o Velox."""
57
58 print '----------------------------------------------------------'
59 print '************ Autenticacao Automatica do Velox ***********'
60 print '----------------------------------------------------------'
61 print ' magic-velox.py v1.0.0 [05/05/2005] '
62 print ' Marcel Portela, marcel{.}portela(a)gmail{.}com '
63 print '----------------------------------------------------------'
64 if (self.velox=='r'):
65 if self.debug:
66 print ' - Modo Residencial'
67 print ' - Provedor: %s' % (self.provedor)
68 print ' - Login: %s' % (self.login)
69 self.url=self.res_url
70 self.post=self.res_post
71 elif (self.velox=='c'): #necessito de mais testes neste tipo de conexao
72 if self.debug:
73 print ' - Modo Comercial'
74 print ' - Regiao : %s' % (self.comercial)
75 self.url=self.com_url
76 self.post=self.com_post
77 else:
78 if self.debug:
79 print ' ** ERRO DE ATRIBUTO - variavel velox devera ser \'r\' ou \'c\' **'
80 if (self.url != ''):
81 try:
82 self.objSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
83 self.objSock.connect((self.servidor, self.porta))
84 self.objSock.send('POST %s HTTP/1.0\r\n'% (self.url))
85 self.objSock.send('Content-Type: application/x-www-form-urlencoded\r\n')
86 self.objSock.send('Host: %s\r\n' % (self.servidor))
87 self.objSock.send('Content-Length: %s\r\n'% (len(self.post)))
88 self.objSock.send('\r\n%s\r\n\r\n\r\n'% (self.post))
89 self.data = self.objSock.recv(1024)
90 self.objSock.close()
91 self.objSock = None
92
93 if (self.data.find('veloxzone.com.br/home') > 0) : #confirma conexao
94 return 1
95 else:
96 return -1
97
98 except Exception,e:
99 if self.debug:
100 print ' ** ERRO - Servidor inacessivel - verifique sua rede e/o edite este script!'
101 print e
102 try: #certifica-se que servidor foi desconectado
103 self.objSock.close()
104 except Exception,e:
105 pass
106 self.objSock = None
107 return -1
108 else:
109 return -1
110
111 def retorna_servidores(self):
112 """Retorna a lista dos servidores do Velox.
113
114 o velox deve estar desconectado para este metodo funcionar!
115 """
116 str_source = ''
117 lista_achados = []
118 padrao = re.compile("<option value='/.*internet_(.*)'",re.M|re.I)
119 try:
120 pagina = urlopen(self.url_lst_servidor)
121 str_source = pagina.read()
122 except Exception, e:
123 if self.debug:
124 print ' ** ERRO - Falha ao obter lista de servidores, verifique sua conexao com a internet! **'
125
126 if (str_source != ''):#se recebeu a pagina dos servidores
127 lista_achados = padrao.findall(str_source)
128 if ((lista_achados == []) and (self.debug)):
129 if (str_source.find('Desconectar') > 0):
130 print ' ** ERRO - Para obter a lista dos servidores o velox nao pode estar conectado! **'
131 else:
132 #print str_source
133 print ' ** ERRO - Padrao nao encontrado **'
134
135 return lista_achados
136
137 def print_uso():
138 print "Erro, opcao invalida, para brincar:"
139 print "$ python magic-velox.py -c --> (Conectar Velox)"
140 print "$ python magic-velox.py -l --> (Listar Servidores - o velox deve estar desconectado)"
141
142 def main():
143 conectorVelox = magic_velox()
144 if (len(sys.argv) == 2):
145 if (sys.argv[1] == '-l'):
146 for i in conectorVelox.retorna_servidores():
147 print i
148 elif (sys.argv[1] == '-c'):
149 if (conectorVelox.autentica()==1):
150 print ' --=( Velox conectado! )=--'
151 else:
152 print ' ** Problema conectando velox! **'
153 else:
154 print_uso()
155 else:
156 print_uso()
157 conectorVelox = None
158 sys.exit(0)
159
160 if (__name__=='__main__'):
161 main()
Arquivos Anexados
Para se referir aos anexos de uma página, use attachment:filename, como mostrado abaixo na lista de arquivos. NÃO use a URL do link [get], já que a mesma está sujeita a alterações, e pode facilmente se tonar inválida.Você não tem permissão para anexar arquivos a esta página.