knuさんのmacbookでau-wi-fiを拾ったら接続ツールを起動するをパクってフレッツスポットに接続するやつ作ってみた!
フレッツスポットには接続が二種類あって、Web認証のほうを自動化してみました。
NTT-SPOTのアクセスポイントに入ったら、https://login3.ntt-bp.net/index.php にアクセスすれば良いので、こんなcurlで実験。
なお、実験するためにモスバーガー大田原店へ。
% curl -F user=ほげほげ@e-flets.jp -F password=もげもげ https://login3.ntt-bp.net/index.php
これでうまくいったのでknuさんのスクリプトをパクってこんな風に改造しました。(wifido.sh)
#!/bin/sh ssid="$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | Awk '$1=="SSID:"{print $2}')" case "$ssid" in NTT-SPOT) curl -s -o /tmp/ntt-spot -F user= ほげほげ@e-flets.jp -F password=もげもげ https://login3.ntt-bp.net/index.php ;; esac
あとはplistを用意して設定するだけ。(org.druby.wifido.plist)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>org.idaemons.wifido</string> <key>LowPriorityIO</key> <true/> <key>ProgramArguments</key> <array> <string>/Users/mas/bin/wifido.sh</string> </array> <key>RunAtLoad</key> <true/> <key>WatchPaths</key> <array> <string>/var/run/resolv.conf</string> <string>/Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist</string> <string>/Library/Preferences/SystemConfiguration/NetworkInterfaces.plist</string> </array> </dict> </plist>
プログラムのパスなどは適宜設定してね。あとはlaunchdに登録。実験するために那須塩原のミスドに行きました.
% launchctl load -w ~/Library/LaunchAgents/org.druby.wifido.plist
まとめ
よい実験のために、コーヒーたくさん飲まなくちゃいけません。