Ir para conteúdo
Fórum Script Brasil
  • 0

Logica


Ale

Pergunta

algm pode me ajudar a diminuir esse codigo aqui:

def pega_ip(sites="no"):
	if sites == "no":
  defaults = ["http://checkip.dyndns.org", "http://www.whatismyip.com/", "http://www.whatismyipaddress.com/"\
	, "http://www.lawrencegoetz.com/programs/ipinfo/", "http://www.showmyip.com/pt/"]
	else:
  defaults = sites
	try:
  fd = urllib.URLopener().open(defaults[0]).read()
	except:
  try:
  	fd = urllib.URLopener().open(defaults[1]).read()
  except:
  	try:
    fd = urllib.URLopener().open(defaults[2]).read()
  	except:
    try:
    	fd = urllib.URLopener().open(defaults[3]).read()
    except:
    	try:
      fd = urllib.URLopener().open(defaults[4]).read()
    	except:
      lista[0] = "invalid urls"
      return lista[0]
	try:
  lista = re.findall('[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*',fd)
  return lista[0]
	except:
  lista[0] = "%s invalids"%(sites)
  return lista[0]

deve ter algo menos extenso... vlw... =)

ah.. penso em algo como while, mas não consegui implentar nada com sucesso...

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Eu faria ela assim:

def pega_ip(sites="no"):
    if sites == "no":
        defaults = ["http://checkip.dyndns.org", "http://www.whatismyip.com/", "http://www.whatismyipaddress.com/",
                    "http://www.lawrencegoetz.com/programs/ipinfo/", "http://www.showmyip.com/pt/"]
    else:
        defaults = sites

    retorno = ["invalid urls"]
    for site in defaults:
        try:
            fd = urllib.urlopen(site).read()
            lista = re.findall('[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*',fd)
            if len(lista)>0:
                retorno = lista[0]
                break
        except Exception, e:
            pass

    return retorno

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...