印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
Linux freetel の今月の転送量を家族と共有したい

freetel の今月の現在までのデータ利用量を家族と共有する。利用量が表示されているページを wget でダウンロードしてきて,これを家族と共有することにする。

■ ■ ■

背景と問題点

今年の4月,私の PHS 回線を freetel に乗り換え,妻の docomo 回線を freetel に乗り換えた (nlog(n): さようなら Y!mobile こんにちは freetel)。契約は私の名義にしたので,freetel の2回線を私が管理していることになる。freetel では,データ転送量に応じて料金が変わるプランになっていて,1GB, 3GB, 5GB, 8GB を境にして料金が約500円ずつジャンプアップする仕組みになっている (FREETEL SIM|料金・プラン|FREETEL(フリーテル))。つまり,例えば 2.9GB と 3.0GB では料金に差が出てくるということになる。

したがって,自分の使っている回線の転送量を把握しておけば,料金を安く済ませることができる。しかし,転送量は私のアカウントでしか見ることができない。妻とパスワードを共有するという解決方法もあるのだが,「変なところを押すかも知れないのでイヤ」という。確かに,そのページには「節約モード」の切替スイッチがある。

方針

そこで,freetel の転送量のページだけを自宅の Web サーバにコピーしてきて,そのページを妻と共有することにした。

自宅の Linux サーバで,1時間に1回 freetel にアクセスして転送量のページをダウンロードしてくる。現在までの転送量は,「節約モード設定」のページで確認することができる。URL は https://mypage.freetel.jp/SavingMode である。1時間に1回の定時アクセスは cron を使い,ページのダウンロードには wget コマンドを使う (GNU Wget - Wikipedia)。

動作環境

動作環境は,Vine Linux 6.2, wget 1.14 である。

調査

freetel マイページへのログイン方法を調べておく。ログイン : FREETEL Mypage のフォーム部分は次のようになっている。

<form action="/login" id="SimUserLoginForm" method="post" accept-charset="utf-8"><div style="display:none;"><input type="hidden" name="_method" value="POST"/></div><div class="input form-group"><label for="SimUserUserDesignationId">メールアドレス</label><input name="data[SimUser][userDesignationId]" class="form-control" type="text" id="SimUserUserDesignationId"/></div><div class="input form-group required"><label for="SimUserPassword">パスワード</label><input name="data[SimUser][password]" class="form-control" type="password" id="SimUserPassword" required="required"/></div><button class="form-control" type="submit">ログイン</button></form>

シェルスクリプト

次のようなシェルスクリプトを用意する。スクリプトの名前は例えば freetel.sh などとしておく。uerid と password の部分は自分のものに設定する。

#!/bin/sh
USERID='userid'
PASSWD='password'
wget -q -N --save-cookies=cookies.txt --post-data "data[SimUser][userDesignationId]=${USERID}&data[SimUser][password]=${PASSWD}" https://mypage.freetel.jp/login
wget -q -N --load-cookies=cookies.txt -O SavingMode.html https://mypage.freetel.jp/SavingMode

ここでは2回 wget を使っていて,1回目はログインページで認証し,それをクッキーに保存しておいて,2回目の「節約モード設定」ページへのアクセスの際に使っている。「節約モード設定」のページを SavingMode.html ファイルに保存して終了する。

wget は,デフォルトでは既存のファイルに上書きしないので,-N スイッチをつけて強制的に上書きさせている (GNU Wget 1.9 Manual: タイムスタンプ)。

cron の設定

cron の設定は,1時間に1回のアクセスにするなら次のように書いておく。/path/to/freetel にはシェルスクリプトを保存してあるディレクトリを指定する。

$ crontab -l
0 * * * * cd /path/to/freetel && /path/to/freetel/freetel.sh

おわりに

ダウンロードしてきた SavingMode.html ファイルを Web アクセスできる場所に保存して,その URL を家族と共有すればよい。必要なら Basic 認証をかけておけば OK。

Posted by n at 2016-07-13 21:47 | Edit | Comments (0) | Trackback(0)
Trackbacks

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • タイムアウトエラーは,こちらのサーバの処理能力不足が原因です (詳細は トラックバック送信時のエラー をご覧ください)
  • トラックバックする記事には,この記事へのリンクを含めてください(詳細は 迷惑トラックバック対策 をご覧ください)
Comments
Post a comment
  • 電子メールアドレスは必須ですが,表示されません (気になる場合は「メールアドレスのような」文字列でもOKです)
  • URL を入力した場合はリンクが張られます
  • コメント欄内ではタグは使えません
  • コメント欄内に URL を記入した場合は自動的にリンクに変換されます
  • コメント欄内の改行はそのまま改行となります
  • 「Confirmation Code」に表示されている数字を入力してください (迷惑コメント対策です)


(必須, 表示されます)


(必須, 表示されません)


(任意, リンクされます)


Confirmation Code (必須)


Remember info (R)?