Utilisation de la ligne de commande pour se connecter à un réseau sans fil avec une connexion http

12

J'essaie de me connecter à un réseau wifi où il détourne toutes les demandes et vous redirige vers une page où vous devez accepter les conditions d'utilisation avant de vous permettre de vous connecter au monde extérieur réel. C'est une pratique assez courante et ne pose généralement pas beaucoup de problème.

Cependant, j'ai un ordinateur exécutant un serveur Ubuntu 9.10 sans système de fenêtrage. Comment puis-je utiliser la ligne de commande pour accepter les conditions d'utilisation? Je n'ai pas accès à Internet sur l'ordinateur pour télécharger des packages via apt-get ou quelque chose comme ça. Bien sûr, je peux penser à un certain nombre de solutions de contournement, mais je pense qu'il existe un moyen facile d'utiliser wget ou curl ou quelque chose.

Fondamentalement, j'ai besoin d'une solution en ligne de commande pour envoyer une demande HTTP POST en cliquant essentiellement sur un bouton. Pour référence future, il serait utile de savoir comment envoyer une demande POST avec, disons, un nom d'utilisateur et un mot de passe si jamais je me retrouve dans cette situation dans un autre hôtel ou aéroport.

Shane
la source
1
voir cette réponse sur l'utilisation de curl pour une technique similaire de ligne de commande-page Web-bouton-poussoir . je le posterais ici mais ce serait juste un travail de couper-coller; pas la peine. si vous venez avec des mesures exactes à prendre, postez comme votre propre réponse.
Quack Quichote

Réponses:

7

Installez Lynx à l'avance, puis utilisez Lynx à partir de la ligne de commande. Lynx est un navigateur basé sur du texte.

Vous pouvez également essayer d'utiliser wget ou curl pour obtenir www.google.com, puis analyser le fichier HTTP renvoyé.

ta.speot.is
la source
7
les liens feront un meilleur travail que lynx - c'est un navigateur légèrement plus moderne. (pas vraiment. utilisez des liens . vérifiez votre gestionnaire de paquets local.)
quack quixote
Les liens +1 fonctionnent parfaitement. Vraiment facile à utiliser et fait très bien le travail.
Saif Bechan
J'ai fini par utiliser cette réponse cette fois (téléchargé Lynx avec un ordinateur séparé et transféré le fichier via USB), mais il est probablement temps que j'apprenne à utiliser curl.
Shane
7

Vous devrez regarder une fois la source du formulaire de connexion pour connaître les noms des champs utilisateur et mot de passe. Comme l'authentification redirige toutes les pages, utilisez n'importe quelle URL pour obtenir cette source:

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

Par exemple, vous trouverez:

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

Une autre façon consiste à utiliser (sur un autre ordinateur) un proxy tel que Fiddler2 pour voir ce qui est envoyé "par câble" par le navigateur.

Ensuite, vous pouvez créer votre curlcommande pour publier vos informations de formulaire:

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

Si vous n'en avez pas curl, il est possible d'écrire un simple client HTTP avec un langage que vous pourriez avoir sur la plateforme (Perl, Lua, Java ...).

dolmen
la source