Usando a linha de comando para se conectar a uma rede sem fio com um login http

10

Estou tentando conectar-me a uma rede Wi-Fi, onde ela seqüestra todas as solicitações e redireciona você para uma página em que você precisa concordar com os termos de uso antes de permitir a conexão com o mundo real. Esta é uma prática bastante comum e geralmente não representa um grande problema.

No entanto, tenho um computador com o servidor Ubuntu 9.10 sem sistema de janelas. Como posso usar a linha de comando para concordar com os termos de uso? Eu não tenho acesso à internet no computador para baixar pacotes via apt-get ou qualquer coisa assim. Claro, eu posso pensar em qualquer número de soluções alternativas, mas eu suspeito que há uma maneira fácil de usar wget ou curl ou algo assim.

Basicamente, eu preciso de uma solução de linha de comando para enviar uma solicitação HTTP POST essencialmente clicando em um botão. Para referência futura, seria útil saber como enviar uma solicitação POST com, digamos, um nome de usuário e uma senha, se alguma vez me encontrar nessa situação em outro hotel ou aeroporto.

    
por Shane 18.04.2010 / 23:16

2 respostas

7

Instale o Lynx antecipadamente e, em seguida, use o Lynx na linha de comando. O Lynx é um navegador baseado em texto.

Como alternativa, você pode tentar usar wget ou curl para obter www.google.com e analisar o arquivo HTTP retornado.

    
por 18.04.2010 / 23:32
5

Você terá que procurar uma vez na origem do formulário de login para descobrir os nomes dos campos de usuário e senha. Como a autenticação redireciona todas as páginas, use qualquer URL para obter essa fonte:

curl http://www.google.com > login.html

Por exemplo, você encontrará:

<form method="POST" action="http://my-public-provider.com/agree.php">
    <input type="checkbox" name="agree" value="yes">I agree
    <input type="submit" name="push" value="Send">
</form>

Outra maneira é usar (em outro computador) um proxy, como Fiddler2 , para ver o que é enviado "pelo fio "pelo navegador.

Em seguida, você pode criar seu comando curl para postar suas informações de formulário:

curl -d "agree=yes&push=Send" http://my-public-provider.com/agree.php

Se você não tem curl , é possível escrever um simples cliente HTTP com uma linguagem que você possa ter na plataforma (Perl, Lua, Java ...).

    
por 26.03.2011 / 18:07