21
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【小ネタ】Web認証の自動化【Linux編】

Posted at

カフェとか勉強会会場とかのWiFi等のWeb認証で毎回ブラウザでID・パスワードの入力とかAcceptボタンのクリックとかが面倒なので自動化しようというお話です。古いネタなんですが、周りに割と知らない人がいたのと、ググるとツールを使う方法とかが出てきちゃったのでスクリプトのみで行う方法を一応書いておこうと思います。

NetworkManagerの有無によって変わります。

NetworkManager有りの場合

以下のようなファイルを作成します。

/etc/NetworkManager/dispatcher.d/99-local.sh
#!/bin/bash

if [ "$CONNECTION_ID" = "example-wifi" ]; then
	curl http://example.com/login -d user=example-user -d password=example-password -d cmd=authenticate
fi

CONNECTION_IDはwifiのSSIDを入れます。
curlのURLとパラメータはWeb認証で必要となるものに置き換えて貰えればと思います。
これらは事前に一度はログインしてパケットをキャプチャするなどして調べておく必要があります。
例えばdocomo WiFiならcurl https://wlan.m-zone.jp/wlan/portal.jsp -d user=username-spmode@docomo -d password=userpassword -d mode=activateとかですね。

そして実行権限を付与すればOKです。
sudo chmod +x !$

これで接続時に自動的に上記のスクリプトが実行されて繋がります。

NetworkManager無しの場合

/etc/sysconfig/network-scripts/ifup-post
から
/sbin/ifup-local
が呼ばれるので、そこに処理を書きます。
デフォルトだとファイルが存在しないので、ファイル作成後に実行権限を付与します。

こっちは数年前に試したきりです。
現在手元にはNetworkManagerがオンのマシンしかないので、実は動かないとかあったらコメントください。

以上。超小ネタでした。

21
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?