web-dev-qa-db-ja.com

Windowsのキャプティブポータルを使用してネットワークに自動的にログインするにはどうすればよいですか?

キャプティブポータルでログインする必要があるオフィスにWI-FIネットワークがあります(ユーザー名とパスワードでログインする必要があります)。

どういうわけか、ネットワークに接続するとすぐに自動的にログインするスクリプトを実行したいと思います(ブラウザーを起動して開いたままにする必要はありません)。

不思議なことに、私はAndroid( CoovaAX これはもう利用できません)のようなクライアントを見つけることができましたが、Windowsのクライアントは見つかりませんでした(私がWindows 7を持っている場合)問題)。

誰かがこれに対する簡単な解決策を持っていますか?このために自分のツールをコーディングするのに時間を費やす必要はありません。

15
Assaf Stone

単純なことはわかりません... webinject.pl というツールを使用してWebサイトをテストします。これは、入力と期待される結果を指定できるPerlスクリプトであり、このために簡単に構成できます。機能するまでに1時間かかる場合があります。

それを自動化する方法については。 Windowsタスクスケジューラは非常に堅牢で、無数のイベントでトリガーできます。ログオンイベントまたはイベントログエントリに関連付けることも、5分ごとに実行することもできます(少し面倒です)。たとえば、ネットワーク接続を確立すると、システムログにイベント32が記録されます。それでうまくいくかもしれません。

7
uSlackr

ログインに必要なコマンドを含むcmd_argsスクリプトファイルで lynx (SSLをサポートするバージョン)-テキストベースのブラウザ-を使用できます。このようなスクリプトファイルは、ログに記録することで生成できます。一度lynxでwifiにログインし、入力を記録します。これを行うには、次の引数を指定してlynxを呼び出します。

lynx.exe -cmd_log =%USERPROFILE%\ lynxlog.txt`

次に、次のようにlynxを呼び出して、そのファイルの名前を変更して使用できます。

lynx.exe -cmd_script = FILENAME_HERE

これをバッチファイルに入れます。 (lynx実行可能ファイルへの完全パスを使用するか、PATH環境変数にそのパスを設定します。)

それが機能するようになったら、ログ10000のソースNetworkProfileでイベントIDMicrosoft-Windows-NetworkProfile/Operationalによってトリガーされるスケジュールされたタスクを作成します。

Task Scheduler trigger example

個人的には、それをiexpress.exeにバンドルしてバックグラウンドで非表示にして、ログオンしていない場合でもスケジュールされたタスクが実行されるように設定されていることを確認します。数週間前にこれを自分のコンピューターにセットアップしたところ、うまく機能しています。

出典: キャプティブポータルログインを自動化する方法 に関する私の記事。

5
Menasheh

私はこれまでにWindowsタスクスケジューラとphp + mysqlliteスクリプトでこれを行いました。 php + mysqlliteスクリプトは、Googleに到達できるかどうかを確認し、リダイレクトされた場合は、リダイレクト先のドメインのルーチンがあるかどうかを確認し、存在する場合は実行しました。 mysqlliteは、phpで実装したヘッドレスブラウザのCookieを保持することでした。ログインと同等のグリースモンキーを使用する方が、おそらくはるかに少ない作業です。 (欠点は、スケジューラーがトリップするたびにブラウザーがポップアップして処理を実行することです。)

タスクスケジューラのトリガーは、マシンごとに異なります。私はwifi接続をイベントとしてログに記録するラップトップを1つ持っていて、それらにはssidが含まれていたので、気になるものだけでトリガーするようにフィルタリングできました。

私の現在のラップトップでは、確実に起動される唯一のイベントはDHCPクライアント接続のようです。もちろん、これは私がIPアドレスを取得するたびに揚げられ、SSIDを教えてくれません。

Windowsイベントビューアを使用して、トリガーできるイベントを確認できます。 Wi-Fiを3回オン/オフし、過去1時間に3回トリガーされたイベントを確認しました。

1
Rick