Pyv6.py: Script de atualização de ipv4 na he.net

Eu escrevi esse script porque ainda não tinha visto um script para update de ipv4 no tunnel de ipv6 da he.net que realmente funcionasse, e isso porque uso ele ha alguns anos, este é o meu primeiro codigo em python que considero completo, embora augur, meu grande amigo tenha me ajudado, recentemente o site do tunnel passou por mudanças e tive que reescreve-lo quase que totalmente, o POG do cookie é ideia original do augur, mas que funciona 100% sem a utilização da cookielib, valeu augur!

#!/usr/bin/python
# coding: UTF-8
# pyipv6.py by deadcow.
# primeiro codigo meu em python
# agradecimentos a meu amigo augur.

import urllib, md5, sys, re

url   = 'http://tunnelbroker.net/'
tunid = 00000                           # Seu Tunnel id.

try:
    uname = sys.argv[1]
    pword = sys.argv[2]
    pword = md5.new(pword).hexdigest()
except:
    uname = 'usuario'                   # Seu usuario
    pword = 'senha'                      # Sua senha
    pword = md5.new(pword).hexdigest()

try:
    ip    = urllib.urlopen('http://whatismyip.org').read()
    if re.search('^Error:',ip) is not None:
        print 'Erro: whatismyip.org indisponivel.'
        sys.exit(-1)
except:
    ip    = raw_input('Enter ip: ')

def getcookie(x):
    try:
        return urllib.URLopener().open(x).info()['Set-Cookie'].split(';')[0]
    except IOError,e:
        print 'Problemas:\n%s' %e[3]
        sys.exit(-1)

cookie = getcookie(url+'index.php')

data = {'f_user':uname, 'clearpass':'', 'f_pass':pword, 'Login':'Login'}

agent = urllib.URLopener()
agent.addheader('Cookie', cookie)
data = urllib.urlencode(data)

try:
    conteudo = agent.open(url+'login.php',data).read()
    print conteudo
except IOError, e:
    hmsg = e[3]
    ue = hmsg['Location']
    if ue == 'main.php':
        url = url+'ipv4_update.php'
        ag = urllib.URLopener()
        ag.addheader('Cookie', cookie)
        da = {'ipv4b':ip,'tunnel_id':tunid,'update':'Submit'}
        da = urllib.urlencode(da)
        try:
            ct = ag.open(url,da).read()
            result = re.search('<font color=".{7}">(.*)</font>',ct)
            try:
                print result.group(1)[:45].replace(', ','.')
            except:
                print 'Erro interpretando html'
        except IOError,i:
            print i[3]
    else:
        print 'Erro: login ou senha invalidos.'

 

0 comentários:

Postar um comentário