1
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Organization

グリーンハウスのUSBドングル型LTEルータ GH-UDG-MCLTE の接続状態をcurlで取得してみる

COVID-19パンデミックの影響でPIX-MT100が品薄となったこともあり、代替として使えそうなGH-UDG-MCLTEを入手してみました。
PIX-MT100もGH-UDG-MCLTEも、USBドングル型ですがルータ機能を内蔵しており、PCやRaspberryPiなどにUSBで接続するとUSBイーサネットデバイスのように認識され、PCにはプライベートIPアドレスがDHCPで割り振られます。
このようなLTEモデムはRaspberryPiを使ったIoTプロジェクトには非常に便利で、EthernetやWiFi接続で動かしていたデバイスに、追加の設定一切なしで、これらのドングルを接続するだけでLTEバージョンが用意できます。

一方、ATモデムであればモデムやSIMの情報をATコマンドで取得できるところ、これらのルータ機能内蔵LTEドングルの場合、標準的なAPIは用意されていません。
ブロードバンドルータのようなWeb設定画面はあるので、少なくともそこに表示されている情報はスクレイピングで取得できるはずです。

さしあたってほしいのは、

  • IMEI: モデムに割り振られている一意な番号(絶対ほしい)
  • MSISDN: SIMの電話番号(絶対欲しい)
  • RSSI: ざっくり言うと電波の強さ

あたりです。
遠隔地に設置したIoTデバイスの台数が増えてくると、IoTデバイス運用中にこれらの情報を取れないと軽く死ねます。

Firefoxの「開発ツール」の「ネットワーク」のタブを見ながら管理画面のページを遷移していると、cgi-bin/qcmap_web_cgiというリソースにリクエストが飛んでいるようです。
これをcurlで叩けばほしい情報がとれそうです。

とりあえず、以下のAPIがあることはわかりました。

GetInfo
$ curl -s -d 'Page=GetInfo' -d 'Result=0' http://192.168.225.1/cgi-bin/qcmap_web_cgi | jq .
{
  "Page": "GetInfo",
  "model_name": "AU5700",
  "imei": "3520100xxxxxxxx",
  "software_version": "11-24",
  "my_number": "020xxxxxxxx",
  "Result": ""
}
GetHomeStatus
$ curl -s -d 'Page=GetHomeStatus' -d 'Result=0' http://192.168.225.1/cgi-bin/qcmap_web_cgi | jq .
{
  "Page": "GetHomeStatus",
  "curr_connect": "3",
  "connected_network": "DOCOMO",
  "autoconnect": "1",
  "profile_name": "CID1",
  "APN": "biglobe.jp",
  "Searching_mode": "0",
  "PIN": "3",
  "DHCP": "192.168.225.1",
  "DMZ": "0.0.0.0",
  "Model_name": "AU5700",
  "SW_Ver": "11-24",
  "MSISDN": "020xxxxxxxx",
  "Anthena": "3"
}

IMEIとMSISDNはGetInfoで取得できるようです。

続く...

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
1
Help us understand the problem. What are the problem?