私はよく開いているネットワークに接続しますが、Webページで使用する前にキーパス認証が必要です。スクリプトを使用して認証を自動化することは可能ですか?
私はよく開いているネットワークに接続しますが、Webページで使用する前にキーパス認証が必要です。スクリプトを使用して認証を自動化することは可能ですか?
回答:
なんて楽しい問題でしょう。
私はændrükの答えがおそらく機能するだろうと確信していますが、デスクトップソフトウェアに依存するものにネットワークの可用性を管理させることには少し不利です。
PythonのMechanizeライブラリをいじってみることをお勧めします。次の方法でリポジトリからインストールできます。
sudo apt-get install python-mechanize
次に、スクリプトを取得します。まず、送信するページの構造を見つける必要があります。フォームがどこに来るか、そして提出するためにどのフィールドを入力する必要があるかを見つける必要があります。それがわかったら、簡単なフォームパーサーとサブミッターを書くだけでとても簡単です。機械化はすべての重労働を行います。以下は、フォームに関するドキュメントから採用した簡単な例です。
import sys
from mechanize import ParseResponse, urlopen, urljoin
# replace this with the actual login page
# you'll need to do some research
uri = "http://theloginpage.com/"
response = urlopen(uri)
forms = ParseResponse(response, backwards_compat=False)
form = forms[0]
print form
form["username"] = "your username"
form["username"] = "password"
# form.click() returns a mechanize.Request object
# (see HTMLForm.click.__doc__ if you want to use only the forms support, and
# not the rest of mechanize)
print urlopen(form.click()).read()
システムの動作方法によっては、これで十分な場合があります。接続をオンにしている間、セッションを存続させるためにいくつかのcookieを接続する必要があるかもしれませんが、技術的に言えば、なぜそれが必要なのかについては議論がありません。
次に、これをネットワークシステムに関連付けて、呼び出されるようにします。からのロードは機能する/etc/network/if-up.d
はずですが、コードの前にチェックを付けて、ログインが機能するホットスポットに本当にいることを確認することをお勧めします。