7741
Comentário:
|
← Revisão 14e 2008-09-26 14:05:52 ⇥
7847
converted to 1.6 markup
|
Deleções são marcadas assim. | Adições são marcadas assim. |
Linha 1: | Linha 1: |
#pragma section-numbers off = Receita: magic-velox.py = Conector do velox. Faz a autenticação e / ou lista os servidores diponíveis do Velox! Para quem tem que passar, assim como eu, por aquela autenticação infeliz do velox, eu compartilho esta maravilha. Crie um script chamado magic-velox.py ou baixe {{{attachment:magic-velox.py}}} com o código abaixo e veja como usar logo abaixo... |
## page was renamed from magic-velox Conector do velox - funciona no linux, windows, mac e onde mais vc conseguir instalar o python... Faz a autenticação e/ou lista os servidores diponíveis do Velox! Para quem tem que passar, assim como eu, por aquela autenticação infeliz do Velox, eu compartilho esta maravilha. Baixe [[attachment:magic-velox.py]] ou crie um script chamado {{{magic-velox.py}}} com o código abaixo e veja como usar logo abaixo. |
Linha 13: | Linha 10: |
#!python | |
Linha 15: | Linha 12: |
Linha 23: | Linha 19: |
Linha 26: | Linha 20: |
Linha 29: | Linha 22: |
os atributos velox, comercial, provedor, login, senha devem ser alterados para a necessidade de cada pessoa |
Os atributos velox, comercial, provedor, login, senha devem ser alterados para a necessidade de cada pessoa. |
Linha 36: | Linha 26: |
a configuracao e simples, a variavel "velox" recebe o valor 'r' para residencial e 'c' para comercial, se o "velox" for 'comercial', a variavel "comercial" devera ser alterada para o seu tipo de velox comercial, se o "velox" for 'residencial' a variavel "provedor" devera receber o valor de seu provedor, para saber qual seu provedor, execute "#python magic-velox.py -l" na linha de comando ou consulte o codigo fonte da pagina de autenticacao do velox Para facilitar, estou postando alguns valores possiveis para a variavel "provedor" |
a configuracao e simples, a variavel "velox" recebe o valor 'r' para residencial e 'c' para comercial, se o "velox" for 'comercial', a variavel "comercial" devera ser alterada para o seu tipo de velox comercial, se o "velox" for 'residencial' a variavel "provedor" devera receber o valor de seu provedor, para saber qual seu provedor, execute "# python magic-velox.py -l" na linha de comando ou consulte o codigo fonte da pagina de autenticacao do Velox Para facilitar, estou postando alguns valores possiveis para a variavel "provedor". |
Linha 50: | Linha 39: |
Linha 54: | Linha 41: |
def __init__(self,debug=1): self.velox = 'r' #Alterar: define o tipo do velox #pode ser 'r' para residencial #ou 'c' para comercial self.comercial='AARJ' #Alterar: caso velox igual a 'c' (preciso de mais testes) self.provedor ='SUPERIG' #Altear: caso velox igual a 'r' self.login = 'seu_login' #Alterar: Login no Provedor |
def __init__(self, debug=1): self.velox = 'r' # Alterar: define o tipo do velox # pode ser 'r' para residencial # ou 'c' para comercial self.comercial='AARJ' # Alterar: caso velox igual a 'c' # (preciso de mais testes) self.provedor ='SUPERIG' # Altear: caso velox igual a 'r' self.login = 'seu_login' # Alterar: Login no Provedor |
Linha 78: | Linha 51: |
#Nao alterar mais nada, configurar somente ate aqui! |
# Nao alterar mais nada, configurar somente ate aqui! |
Linha 83: | Linha 54: |
Linha 85: | Linha 55: |
Linha 87: | Linha 56: |
self.url_lst_servidor = 'http://www.veloxzone.com.br/user/pages/serviceList.jsp' |
self.url_lst_servidor = \ 'http://www.veloxzone.com.br/user/pages/serviceList.jsp' |
Linha 90: | Linha 59: |
self.res_url='/vfile/pages/serviceLogon.jsp' self.res_post='service=internet_%s&fcn=serviceLogon&ac=home&usr=&username=%s&password=%s&OK=OK' % (self.provedor,self.login,self.senha) |
self.res_url = '/vfile/pages/serviceLogon.jsp' self.res_post = ('service=internet_%s&fcn=serviceLogon&ac=home' + \ '&usr=&username=%s&password=%s&OK=OK') % \ (self.provedor,self.login,self.senha) |
Linha 96: | Linha 65: |
Linha 98: | Linha 66: |
Linha 101: | Linha 68: |
Linha 104: | Linha 69: |
Linha 107: | Linha 71: |
Linha 110: | Linha 72: |
Linha 112: | Linha 73: |
Linha 114: | Linha 74: |
Linha 116: | Linha 75: |
Linha 118: | Linha 76: |
Linha 121: | Linha 78: |
if (self.velox=='r'): if self.debug: |
if self.velox == 'r': if self.debug: |
Linha 126: | Linha 81: |
Linha 128: | Linha 82: |
Linha 131: | Linha 84: |
self.url=self.res_url self.post=self.res_post elif (self.velox=='c'): #necessito de mais testes neste tipo de conexao if self.debug: |
self.url = self.res_url self.post = self.res_post elif (self.velox=='c'): # necessito de mais testes neste # tipo de conexao if self.debug: |
Linha 140: | Linha 91: |
Linha 143: | Linha 93: |
self.url=self.com_url self.post=self.com_post |
self.url = self.com_url self.post = self.com_post |
Linha 148: | Linha 97: |
if self.debug: print ' ** ERRO DE ATRIBUTO - variavel velox devera ser \'r\' ou \'c\' **' if (self.url != ''): |
if self.debug: print " ** ERRO DE ATRIBUTO - variavel velox devera" + \ " ser 'r' ou 'c'" if self.url != '': |
Linha 156: | Linha 103: |
Linha 160: | Linha 106: |
Linha 162: | Linha 107: |
self.objSock.send('Content-Type: application/x-www-form-urlencoded\r\n') |
self.objSock.send('Content-Type: ' + \ 'application/x-www-form-urlencoded\r\n') |
Linha 166: | Linha 110: |
Linha 168: | Linha 111: |
Linha 174: | Linha 116: |
Linha 177: | Linha 118: |
if (self.data.find('veloxzone.com.br/home') > 0) : #confirma conexao |
# confirma conexao if (self.data.find('veloxzone.com.br/home') > 0) : |
Linha 182: | Linha 121: |
Linha 184: | Linha 122: |
Linha 186: | Linha 123: |
Linha 190: | Linha 124: |
Linha 192: | Linha 125: |
print ' ** ERRO - Servidor inacessivel - verifique sua rede e/o edite este script!' |
print ' ** ERRO - Servidor inacessivel - verifique ' +\ ' sua rede e/o edite este script!' |
Linha 197: | Linha 129: |
try: #certifica-se que servidor foi desconectado |
try: # certifica-se que servidor foi desconectado |
Linha 200: | Linha 131: |
Linha 202: | Linha 132: |
Linha 208: | Linha 137: |
Linha 210: | Linha 138: |
Linha 215: | Linha 142: |
o velox deve estar desconectado para este metodo funcionar! |
O Velox deve estar desconectado para este metodo funcionar! |
Linha 218: | Linha 144: |
Linha 221: | Linha 148: |
Linha 226: | Linha 154: |
print ' ** ERRO - Falha ao obter lista de servidores, verifique sua conexao com a internet! **' if (str_source != ''):#se recebeu a pagina dos servidores |
print ' ** ERRO - Falha ao obter lista de servidores, ' + \ 'verifique sua conexao com a internet!' if str_source != '': # se recebeu a pagina dos servidores |
Linha 230: | Linha 159: |
if ((lista_achados == []) and (self.debug)): | if lista_achados == [] and self.debug: |
Linha 233: | Linha 163: |
print ' ** ERRO - Para obter a lista dos servidores o velox nao pode estar conectado! **' | print ' ** ERRO - Para obter a lista dos ' + \ 'servidores o velox nao pode estar conectado!' |
Linha 235: | Linha 166: |
#print str_source | # print str_source |
Linha 243: | Linha 174: |
print "$ python magic-velox.py -l --> (Listar Servidores - o velox deve estar desconectado)" | print "$ python magic-velox.py -l --> (Listar Servidores" + \ " - o velox deve estar desconectado)" |
Linha 247: | Linha 179: |
if (len(sys.argv) == 2): if (sys.argv[1] == '-l'): |
if len(sys.argv) == 2: if sys.argv[1] == '-l': |
Linha 251: | Linha 184: |
elif (sys.argv[1] == '-c'): | elif sys.argv[1] == '-c': |
Linha 253: | Linha 188: |
Linha 255: | Linha 189: |
Linha 257: | Linha 190: |
Linha 259: | Linha 191: |
Linha 261: | Linha 194: |
Linha 262: | Linha 196: |
Linha 264: | Linha 197: |
Linha 267: | Linha 201: |
if (__name__=='__main__'): |
if __name__ == '__main__': |
Linha 270: | Linha 203: |
Linha 275: | Linha 207: |
Abra uma linha de comando e digite: Para conectar: |
Abra uma linha de comando e para conectar digite: |
Linha 280: | Linha 210: |
#python magic-velox.py -c |
# python magic-velox.py -c |
Linha 288: | Linha 216: |
#python magic-velox.py -l |
# python magic-velox.py -l |
Linha 294: | Linha 220: |
---- MarcelPortela |
Conector do velox - funciona no linux, windows, mac e onde mais vc conseguir instalar o python... Faz a autenticação e/ou lista os servidores diponíveis do Velox! Para quem tem que passar, assim como eu, por aquela autenticação infeliz do Velox, eu compartilho esta maravilha.
Baixe magic-velox.py ou crie um script chamado magic-velox.py com o código abaixo e veja como usar logo abaixo.
Código
1 #!/usr/bin/python
2 # -*- coding: utf-8 -*-
3
4 import sys
5 import socket
6 from urllib import urlopen
7 import re
8
9 class magic_velox:
10 """Estabelecer uma conexao automatica com o Velox.
11
12 Os atributos velox, comercial, provedor, login, senha devem
13 ser alterados para a necessidade de cada pessoa.
14
15 Para vc saber qual valor utilizar para os atributos comercial e provedor,
16 a configuracao e simples, a variavel "velox" recebe o valor 'r' para
17 residencial e 'c' para comercial, se o "velox" for 'comercial', a
18 variavel "comercial" devera ser alterada para o seu tipo de velox
19 comercial, se o "velox" for 'residencial' a variavel "provedor" devera
20 receber o valor de seu provedor, para saber qual seu provedor, execute
21 "# python magic-velox.py -l" na linha de comando ou consulte o codigo
22 fonte da pagina de autenticacao do Velox Para facilitar, estou postando
23 alguns valores possiveis para a variavel "provedor".
24
25 'SUPERIG3'
26 'GLOBO'
27 'GLOBO3'
28 'GLOBO6'
29 """
30
31 def __init__(self, debug=1):
32 self.velox = 'r' # Alterar: define o tipo do velox
33 # pode ser 'r' para residencial
34 # ou 'c' para comercial
35
36 self.comercial='AARJ' # Alterar: caso velox igual a 'c'
37 # (preciso de mais testes)
38 self.provedor ='SUPERIG' # Altear: caso velox igual a 'r'
39 self.login = 'seu_login' # Alterar: Login no Provedor
40 self.senha = 'sua_senha' #Alterar: Senha no Provedor
41
42 # Nao alterar mais nada, configurar somente ate aqui!
43 self.url = self.post = self.data = ''
44 self.objSock = None
45 self.servidor = 'www.veloxzone.com.br'
46 self.url_lst_servidor = \
47 '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' + \
51 '&usr=&username=%s&password=%s&OK=OK') % \
52 (self.provedor,self.login,self.senha)
53
54 self.com_url='/serviceStart?service=internet_%s' % (self.comercial)
55 self.com_post='confirmed=true'
56 self.debug = debug
57
58 def autentica(self):
59 """Efetua a autenticacao com o Velox."""
60
61 print '----------------------------------------------------------'
62 print '************ Autenticacao Automatica do Velox ***********'
63 print '----------------------------------------------------------'
64 print ' magic-velox.py v1.0.0 [05/05/2005] '
65 print ' Marcel Portela, marcel{.}portela(a)gmail{.}com '
66 print '----------------------------------------------------------'
67
68 if self.velox == 'r':
69 if self.debug:
70 print ' - Modo Residencial'
71 print ' - Provedor: %s' % (self.provedor)
72 print ' - Login: %s' % (self.login)
73
74 self.url = self.res_url
75 self.post = self.res_post
76
77 elif (self.velox=='c'): # necessito de mais testes neste
78 # tipo de conexao
79 if self.debug:
80 print ' - Modo Comercial'
81 print ' - Regiao : %s' % (self.comercial)
82
83 self.url = self.com_url
84 self.post = self.com_post
85
86 else:
87 if self.debug:
88 print " ** ERRO DE ATRIBUTO - variavel velox devera" + \
89 " ser 'r' ou 'c'"
90
91 if self.url != '':
92 try:
93 self.objSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
94
95 self.objSock.connect((self.servidor, self.porta))
96 self.objSock.send('POST %s HTTP/1.0\r\n'% (self.url))
97 self.objSock.send('Content-Type: ' + \
98 'application/x-www-form-urlencoded\r\n')
99 self.objSock.send('Host: %s\r\n' % (self.servidor))
100 self.objSock.send('Content-Length: %s\r\n'% (len(self.post)))
101 self.objSock.send('\r\n%s\r\n\r\n\r\n'% (self.post))
102
103 self.data = self.objSock.recv(1024)
104
105 self.objSock.close()
106 self.objSock = None
107
108 # confirma conexao
109 if (self.data.find('veloxzone.com.br/home') > 0) :
110 return 1
111 else:
112 return -1
113 except Exception,e:
114 if self.debug:
115 print ' ** ERRO - Servidor inacessivel - verifique ' +\
116 ' sua rede e/o edite este script!'
117 print e
118
119 try: # certifica-se que servidor foi desconectado
120 self.objSock.close()
121 except Exception,e:
122 pass
123
124 self.objSock = None
125
126 return -1
127 else:
128 return -1
129
130 def retorna_servidores(self):
131 """Retorna a lista dos servidores do Velox.
132 O Velox deve estar desconectado para este metodo funcionar!
133 """
134
135 str_source = ''
136 lista_achados = []
137 padrao = re.compile("<option value='/.*internet_(.*)'",re.M|re.I)
138
139 try:
140 pagina = urlopen(self.url_lst_servidor)
141 str_source = pagina.read()
142 except Exception, e:
143 if self.debug:
144 print ' ** ERRO - Falha ao obter lista de servidores, ' + \
145 'verifique sua conexao com a internet!'
146
147 if str_source != '': # se recebeu a pagina dos servidores
148 lista_achados = padrao.findall(str_source)
149
150 if lista_achados == [] and self.debug:
151
152 if (str_source.find('Desconectar') > 0):
153 print ' ** ERRO - Para obter a lista dos ' + \
154 'servidores o velox nao pode estar conectado!'
155 else:
156 # print str_source
157 print ' ** ERRO - Padrao nao encontrado **'
158
159 return lista_achados
160
161 def print_uso():
162 print "Erro, opcao invalida, para brincar:"
163 print "$ python magic-velox.py -c --> (Conectar Velox)"
164 print "$ python magic-velox.py -l --> (Listar Servidores" + \
165 " - o velox deve estar desconectado)"
166
167 def main():
168 conectorVelox = magic_velox()
169
170 if len(sys.argv) == 2:
171 if sys.argv[1] == '-l':
172 for i in conectorVelox.retorna_servidores():
173 print i
174
175 elif sys.argv[1] == '-c':
176
177 if (conectorVelox.autentica()==1):
178 print ' --=( Velox conectado! )=--'
179 else:
180 print ' ** Problema conectando velox! **'
181
182 else:
183 print_uso()
184
185 else:
186 print_uso()
187
188 conectorVelox = None
189 sys.exit(0)
190
191 if __name__ == '__main__':
192 main()
Exemplo de uso
Abra uma linha de comando e para conectar digite:
# python magic-velox.py -c
Para listar os servidores (o velox deverá estar desconectado, serve para saber qual o seu servidor):
# python magic-velox.py -l
Volta para CookBook.