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.
Respostas:
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.
fonte
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:
Por exemplo, você encontrará:
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
curl
comando para postar suas informações de formulário: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 ...).fonte