Usar la línea de comandos para conectarse a una red inalámbrica con un inicio de sesión http


12

Estoy tratando de conectarme a una red wifi donde secuestra todas las solicitudes y lo redirige a una página donde debe aceptar los términos de uso antes de que le permita conectarse al mundo exterior real. Esta es una práctica bastante común, y generalmente no representa un gran problema.

Sin embargo, tengo una computadora con Ubuntu 9.10 server sin sistema de ventanas. ¿Cómo puedo usar la línea de comando para aceptar los términos de uso? No tengo acceso a Internet en la computadora para descargar paquetes a través de apt-get o algo así. Claro, puedo pensar en cualquier cantidad de soluciones, pero sospecho que hay una manera fácil de usar wget o curl o algo así.

Básicamente, necesito una solución de línea de comando para enviar una solicitud HTTP POST esencialmente haciendo clic en un botón. Para referencia futura, sería útil saber cómo enviar una solicitud POST con, por ejemplo, un nombre de usuario y contraseña si alguna vez me encuentro en esa situación en otro hotel o aeropuerto.


1
vea esta respuesta sobre el uso de curl para una técnica similar de comando-línea-página-web-botón-pulsador . Lo publicaría aquí, pero sería un trabajo de cortar y pegar; No tiene sentido en eso. Si se le ocurren pasos exactos, publíquelos como su propia respuesta.
quack quijote

Respuestas:


7

Instale Lynx de antemano y luego use Lynx desde la línea de comandos. Lynx es un navegador basado en texto.

Alternativamente, puede intentar usar wget o curl para obtener www.google.com y luego analizar el archivo HTTP devuelto.


77
Los enlaces harán un mejor trabajo que Lynx : es un navegador un poco más moderno. (n. ° realmente utilizar enlaces comprobar su gestor de paquetes local..)
charlatán quijote

+1 enlaces funciona muy bien. Realmente fácil de usar y hace el trabajo bien.
Saif Bechan

Esta vez terminé usando esta respuesta (descargué lynx con una computadora separada y transfirí el archivo a través de usb), pero probablemente sea hora de que realmente aprenda a usar curl.
Shane

7

Deberá buscar una vez la fuente del formulario de inicio de sesión para conocer los nombres de los campos de usuario y contraseña. A medida que la autenticación redirige todas las páginas, use cualquier URL para obtener esa fuente:

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

Por ejemplo, encontrarás:

<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>

Otra forma es usar (en otra computadora) un proxy como Fiddler2 para ver lo que el navegador envía "por cable".

Luego puede crear su curlcomando para publicar la información de su formulario:

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

Si no tiene curl, es posible escribir un cliente HTTP simple con un idioma que pueda tener en la plataforma (Perl, Lua, Java ...).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.