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


12

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

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

Basicamente, preciso de uma solução de linha de comando para enviar uma solicitação HTTP POST, basicamente 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 senha, se algum dia me encontrar nessa situação em outro hotel ou aeroporto.


1
consulte esta resposta sobre o uso do curl para obter uma técnica semelhante da linha de comando na página da Web e do botão pressionador . eu o publicaria aqui, mas seria apenas um trabalho de cortar e colar; nenhum ponto nisso. se você seguir as etapas exatas a seguir, poste como sua própria resposta.
quack quixote

Respostas:


7

Instale o Lynx antecipadamente e 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 depois analisar o arquivo HTTP retornado.


7
Os links farão um trabalho melhor que o lynx - é um navegador um pouco mais moderno. (. sem realmente usar links de verificar o seu gerenciador de pacotes local..)
quack quixote

Os links +1 funcionam muito bem. Realmente fácil de usar e faz o trabalho muito bem.
Saif Bechan

Acabei usando esta resposta desta vez (baixei o lynx com um computador separado e transferi o arquivo por usb), mas provavelmente é hora de realmente aprender a usar o curl.
Shane

7

Você terá que procurar uma vez na fonte 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 o Fiddler2 para ver o que é enviado "pelo cabo" pelo navegador.

Em seguida, você pode criar seu curlcomando 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 possui curl, é possível escrever um cliente HTTP simples com uma linguagem que você possa ter na plataforma (Perl, Lua, Java ...).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.