-
Mudança de base numérica com Python.
Posted on October 19th, 2009 No commentsBoa noite,
Algum tempo já venho pensando em mudar o método utilizado pelo Little URL, já que o mesmo atualmente cria strings aleatórias para cada registro, porém seria melhor criar os endereços utilizando uma base (16,32,64) pois assim não corresse o risco do gerador entrar em loop já que cada endereço registrado possui um número único no banco de dados. (Chave primária). Hoje uma amiga perguntou como ela faria um programa para mudar a base de um número manualmente, aproveitei que ela me lembrou disso e resolvi fazer.
def convert(decimal,newBase,str,letters):
if decimal >= newBase:
x = decimal % newBase
y = decimal / newBase
str = letters[x] + str
if y < newBase:
str = letters[y] + str
return convert(y,newBase,str,letters)
else:
if len(str) == 0:
str = letters[decimal] + str
return str
let = "0123456789ABCDEF"
print convert(17,16,"",let)A váriavel let, são os valores utilizados na criação da base. Por exemplo ao se utilizar uma base binária, os valores deveriam ser 01 e assim consecutivamente.
Espero que goste,
Matheus -
Twitter Sync e Fun Text novos plugins para o Emesene.
Posted on October 6th, 2009 No commentsBoa noite,
Alguns dias atrás resolvi fazer um plugin para o Emesene de sincronização das mensagens de status com as mensagens do perfil. Então pesquisei um pouco e fiz de uma maneira simples.
Navegando pelo fórum do Emesene certo dia um usuário deu a sugestão para implementarmos um Plugin onde apartir de um certo comando como /flip ou /l33t ele transformaria as mensagens, o primeiro faz a mensagem ficar de cabeça pra baixo e da direita pra esquerda já o segundo é a transformação de letras por números.
Espero que gostem,
Matheus -
Conectar ao SSH pelo Python.
Posted on September 2nd, 2009 No commentsBoa noite,
Ontem comentei sobre a utilização do pexpect para executar comandos e se comunicar com eles. Hoje brinquei um pouco mais com essa biblioteca e fiz um exemplo de conexão e enviar o comando ‘uptime’ para o servidor. Só um exemplo simples, mas acredito que já da uma idéia de como você pode mecher com essa biblioteca.
Primeiramente você deve ter a biblioteca pexpect instalada. Você pode obte-la em http://sourceforge.net/projects/pexpect/ e para instalar você deve digitar
$ sudo python setup.py install
Após a mesma instalada você já pode se divertir. O pequeno script que fiz para testar foi o seguinte:
import pexpectclass SSH():
def connect(self):
x = True
sshConnection = pexpect.spawn(’ssh -l matheus -p 22 192.168.0.254′)
sshConnection.expect(‘matheus@192.168.0.254\’s password:’)
sshConnection.sendline(’senha’)
while True:
print sshConnection.readline();
if x is True:
sshConnection.sendline(‘uptime’)
x = False
sshConnection.readline();s = SSH()
s.connect()Bom, o código é auto-explicativo e caso você tenha algum problema para entender, não hesite em entrar em contato,
Matheus BratfischPS: Caso tenha algum problema execute o seguinte comando: $ sudo apt-get install python-dev
PS2: Maldita indentação. Caso você deseje baixe aqui o Conectar ao SSH pelo Python
-
Executando comandos no terminal e passando parametros em Python.
Posted on September 2nd, 2009 No commentsBoa noite,
Estou a alguns dias procurando um método para apartir do Python conseguir executar programas na shell e passar parametros (”responder” as perguntas desse programa.). Por exemplo, você deseja fazer um script em python que automaticamente se autentica em um servidor ssh, ou seja inicia o SSH e passa a senha para o mesmo automaticamente. Após alguns tempos de pesquisa, descobri o subprocess.Popen, porém o mesmo não conseguia matar minha necessidade, quando se tratava de inserir as senhas as mesmas não iam. Li no gossamer-threads que o problema é devido ao SSH não aceitar conteudo para senhas provenientes do stdin, somente do pty então me parece que é necessário algum tipo de simulação. No mesmo tópico deste forum recomendam a utilização da biblioteca pexpect e com a mesma obtive sucesso, não tive tempo de brincar o suficiente com ela, mas do recado básico e inicial ela deu conta.
Quem sabe em alguns dias não posto alguns exemplos, mas fica aqui a dica para você que possui problema semelhante.
Att,
Matheus








