コマンドラインを使用してhttpログインでワイヤレスネットワークに接続する


12

すべてのリクエストをハイジャックし、実際の外の世界に接続する前に利用規約に同意する必要があるページにリダイレクトするwifiネットワークに接続しようとしています。これはかなり一般的な方法であり、通常はそれほど問題にはなりません。

しかし、私はウィンドウシステムのないUbuntu 9.10サーバーを実行しているコンピューターを持っています。コマンドラインを使用して利用規約に同意するにはどうすればよいですか?apt-getなどでパッケージをダウンロードするためのコンピューターにインターネットアクセスがありません。もちろん、回避策はいくつでも考えられますが、wgetやcurlなどを使用する簡単な方法があると思います。

基本的に、基本的にボタンをクリックしてHTTP POSTリクエストを送信するためのコマンドラインソリューションが必要です。今後の参考のために、別のホテルや空港でそのような状況になった場合に、ユーザー名とパスワードなどを使用してPOSTリクエストを送信する方法を知っておくと役に立ちます。


1
同様のcommand-line-webpage-button-pusherテクニックでcurlを使用する方法については、この回答を参照してください。ここに投稿しますが、それは単なるカットアンドペーストの仕事です。その意味はありません。正確な手順を考え出した場合は、自分の答えとして投稿してください。
quack quixote、

回答:


7

事前にLynxをインストールしてから、コマンドラインからLynxを使用します。Lynxはテキストベースのブラウザです。

または、wgetまたはcurlを使用してwww.google.comを取得し、返されたHTTPファイルを分析することもできます。


7
リンクlynxよりも優れた機能を果たします。これは、やや最新のブラウザです。(実際にはありません。リンクを使用してください。ローカルのパッケージマネージャーを確認してください。)
quack quixote

+1リンクは非常に効果的です。本当に使いやすく、うまく機能します。
Saif Bechan 2010

今回はこの回答を使用することになりました(別のコンピューターでlynxをダウンロードし、USB経由でファイルを転送しました)。しかし、おそらく実際にcurlの使用方法を学ぶときです。
シェーン

7

ログインフォームのソースを一度見て、ユーザー名とパスワードフィールドの名前を確認する必要があります。認証によりすべてのページがリダイレクトされるため、任意のURLを使用してそのソースを取得します。

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

たとえば、次のものが見つかります。

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

別の方法は、(他のコンピューターで)Fiddler2などのプロキシーを使用して、ブラウザーによって「回線を介して」何が送信されるかを確認することです。

次にcurl、フォーム情報を投稿するコマンドを作成できます。

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

がないcurl場合は、プラットフォームで使用できる言語(Perl、Lua、Java ...)を使用して単純なHTTPクライアントを作成することができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.