数日前から使っているiVideoのモバイルルーターiV501。カイロの代わりになりそうで今の時期には助かるとかw、いろいろな謎や、たまに惜しいところや間抜けなところがあるものの、全体的には必要充分で問題ない感じだ。それどころか、今朝、期待すらしていなかった機能を発見して、大いに感心した。

切っ掛けは、iV501の通信データ量や電池の状態を見るのに管理webを開く時に、いちいちパスワードを入れる(ご丁寧にも、ある程度時間が経つと自動でログアウトされる)のが面倒なので(いや、認証すること自体はまったく正しくて、何も文句は言えない)、何とかならないか(要は「チートできないか」)と、通信の解析や検索をしたことだった。

認証以外に、間抜けな惜しいことに電池の残量が4種類程度のアイコン(下図右上)でしか分からないので、可能なら数値(%)で知りたかった(結局はできなさそうだ)。電波強度(下図上部"Soft Bank"の右)も同様だった(こっちは数値(RSSI)で得られた。図の下の方("Signal Strength")には数値が出ている)。

iV501の管理web

検索しても詳細な情報が出て来ないので、管理webにアクセス中のPC(Firefoxブラウザ)とiV501の通信をブラウザのDevelopper toolで見てみたら、頻繁に状態を取得していた(無駄に多い(毎秒くらい)ので、止めたくなったくらいだ)。それは以下のようなURL(API)だった(月の通信データ量と電池残量の取得を簡略化した例)。

http://(IPアドレス)/
  goform/goform_get_cmd_process?cmd=monthly_tx_bytes
  %2Cmonthly_rx_bytes%2Cbattery_pers&multi_data=1

結果は、以下のようにJSONで返って来る。

{"monthly_tx_bytes":"2929233487","monthly_rx_bytes":"1500560020",
  "battery_pers":"4"}

惜しいことに、このURLは上記の管理webを表示する前の認証を通してからでないと、値を返さないものが多い。それで、特徴的な"goform_get_cmd_process"で検索してみたら、他にも使われているらしく、いろいろなことが分かった。

まず、このURL(API)はGoAhead Embedded Web Serverという、組み込み用webサーバソフトで使われているようで、ZTE社の製品(例: MF823)で使われているようだ。iV501がZTE製なのか、ZTEの下請け製なのか、それ以外(ごにょごにょ?w)かは不明だが、本体内部に"MF833"という表記があったので、ZTEに関係しているように思う。ただ、ZTEにはMF833というUSB接続のモバイルルーターがあるが、それとiV501とは違うようだ(が、中身は同じなのかも知れないと思った: これがあとですごい発見に繋がるw)。

いくつかのページでは、上記のURL(API)でモバイルルーターの情報取得や制御を行っている。ただ、なかなか最初の認証の通し方が分からなかったのだが、Developper toolを探していたら、運良くgoform_set_cmd_processが認証を通している通信が見付かり、その通りにしたらようやくできた。以下のようなURL(API)で認証が通る。

http://(IPアドレス)/goform/goform_set_cmd_process?goformId=LOGIN
  &password=(BASE64エンコードしたパスワード)

実は、Developper toolで見付ける前に、別のサイトでも見付けて上記に近いことを試していたのだが、パスワードの指定を間違えていて(HTTPの要求ヘッダからコピーしたため、"ユーザー名:パスワード"をBASE64エンコードしたものを指定していた)通らなかった。

余談: 個人的には、こういうゆるい認証もどきは良くないと思う。というのは、一度認証されたあとしばらくは、どんなクライアント(自分以外も!)も全パスにしてしまうからだ。本来は、認証されたら、それを識別するトークンのようなものを返して、それを以後の要求に添付させてチェックすべきだろう。が、そもそもHTTP(SSL/TLSでない)だし、このwebに外部からはアクセスできないので、まあ、大きな問題ではないかと思う(でも、良く報道されるセキュリティ問題は、こういう手抜きから始まることは確かだ)。

そういえば、光の時に使っていたBuffaloのルーターもこういう認証方式で、面倒で嫌いだった。もしかしたら、同じサーバソフトなのかも知れない。

認証を通した後で、最初のURL(API)で情報を取得すればいい。

ここまで来たら、「あとはプログラムを書くだけ(面倒だなぁ。誰か頼むwww)」で話は終わるかと思ったのだが、MF833で検索した時に上記のUSB接続のルーターが出て来たので、ふと、「iV501のUSBをPCに挿したらどうなるかな?」と思い、「まあ、どうせ電源だけだよな・・・」とは思いつつも、ダメ元で挿してみた。

(2/3 17:36) 重い腰を上げて、プログラムを作ったw 指定した情報(変数)をiV501から取得するプログラムと、それをMunin(グラフィカルなPCの状態表示ツール)に入れるものを作った。以下のような感じ(下図の右側)で、MuninにiV501の月ごとの累積通信データ量(上)と通信速度(下)が表示できるようになった。

iV501の月ごとの累積通信データ量(上)と通信速度(下)をMuninで表示(右側, 左側はPCのグラフ)

比較のため、PCの同様なグラフを左側に載せた。スマフォの通信データ量は少ないので、PCとiV501のグラフはほとんど同じ形であるが、スマフォで動画を観まくったりアプリをダウンロードしまくると違いが出そうだ。

ちなみに、iV501からの情報取得プログラムの実行例を以下に示す。出力は、JSONかshで変数を設定するコマンド文字列のいずれかで出せるようにした。例では、iV501から電波強度(RSSI)、月の累計送信・受信データ量、電池の充電状態・残量を取得している(後述のバグのせいで、送信・受信データ量が入れ替わっている)。

./bin/iv501-vars.sh rssi monthly_tx_bytes monthly_rx_bytes 
  battery_charging battery_pers
monthly_rx_bytes="2797359595";monthly_tx_bytes="6248242876";
  battery_pers="4";battery_charging="0";rssi="-84";

余談: iV501にバグがあるようで、月の通信データ量の送信と受信が逆になって送られて来る。いかにも間抜けだけど、こういうのは僕もやるから全然許せるw なお、管理webでは送受信の合計(リンク先左下の"Used")しか出ないので、発覚しないのだろう。

そうしたら、とんでもないことになった。なんと、iV501がLTEのネットワークインタフェースになってしまったのだ! Linuxなのに挿すだけで使えたよ。ちなみに、ifconfigコマンドでは以下のような感じで出る。

enx00xxxxxxxxxx Link encap:Ethernet HWaddr 00:xx:xx:xx:xx:xx
inet addr:192.168.0.X Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:909876 errors:0 dropped:0 overruns:0 frame:0
TX packets:791882 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:615270891 (615.2 MB) TX bytes:266268613 (266.2 MB)

挿す前は、仮に認識したとしても、制御用のシリアル通信程度しか期待していなかった(それで欲しい情報が取れれば、充分ありがたかった)が、いきなりNW-IFとして使えるなんて、全く予想外だった。通信速度も問題なく出た(Wi-Fi接続同様、ダウンロードが20-50Mbpsだった)。

もちろん、これでしばらく試すことにしたが、問題なく使えるなら、iV501用の電源アダプタが不要になるのはもちろん、先日買ってPCに組み込んだばかりのTP-LinkのWi-Fiブリッジがお払い箱になる。組み込んだ苦労やお金が水の泡になるが、物が一気に二つも減るから、そっちの方が気分がいい。それに、ブリッジを内蔵しておけば、PCが(実質)Wi-Fi対応になるから いつか役立つことがあるだろう。

 

それにしても、iVideoはもったいない。こんないいもの(良く考えたら、僕が欲しかった物そのものだ)を、そうとは知らせずに出しているのだから。ただ、これが彼らの上手(うわて)なところなのかも知れない。「モバイルルーター」として出すなら、およそどんな機器でもSSIDとパスワードを入れるだけで簡単に接続できるし、モバイルルーターは世の中に多く出回っていてお客も慣れているだろうから、説明もサポートも手間要らずだ。実際、説明書は簡素な紙1枚だけだった。

一方、PCにUSBで繋げる(「ドングル」とか「モデム」のカテゴリになる)となると、途端にハードルが上がる。OSの種類・バージョン、ドライバ、OSメーカーの認証、コネクタ・ケーブル、電源容量などなど・・・ たとえPCに繋がっても安心はできない。OSのネットワークの設定・切り替えなどがいろいろありそうで、やっぱり面倒だろう。それ以外にも、管理webなんて公開したら更に問題が生じる契機が増えて、サポートの手間が激増するだろう。であれば、そういうのはないことにして、Wi-Fiだけで使ってもらうほうが得策だ。

(彼らが実際にそこまで考えたかどうかは分からないが、)うまいやり方に感心した。言ってみれば「ないない詐欺」だw

そして、日本は本当に中国・台湾(韓国はまだ分からない)に負けたのを実感した。製品もサービスのやり方も全く負けている。

物についてだけ考えても、これが日本製だったら、高くて(2倍以上はしそうだ)機能が多過ぎて(でも、ほとんど使わない)、難解な分厚いマニュアルが付いて来て、それを補完する「簡単マニュアル」なんてのまでありw(だったら、最初からそれだけにすればいいのに・・・)、しかも、結局はちゃんと動かないとか、(昔と違って)すぐ壊れるってことが多そうではないか。

なんて おそろしい子だw

  •   0
  •   0

コメントを書く

名前    

メール 

URL