@m_seki の

I like ruby tooから引っ越し

パクってMacBookでフレッツスポット接続を自動化

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

まとめ

よい実験のために、コーヒーたくさん飲まなくちゃいけません。