読者です 読者をやめる 読者になる 読者になる

以下省略!

タイダルウ(ry 毎日1記事執筆運動実施中。

Chromecastのポート8008を突っついて情報を取得してみる

f:id:abyssluke:20160416164414p:plain:w200:leftChromecastはDIALプロトコルおよびSSDPを使っているらしい。その通信に使うTCPポート 8008宛にHTTPで特定のURLにアクセスすることでChromecastの設定情報等が得られたりする。今回はそのメモ。

ここではChromecastのIPが192.168.1.100であると仮定する。またChromecastはmDNS(avahi,Bonjour)対応なので初期設定のChromecastから名前を変えていないのであればchromecast.localでも繋がるかも。
Chromecast 1をターゲットとしているが、Chromecast 2, Chromecast Audioで通用するかどうかは不明。

SSDPでのデバイス情報

SSDP(Simple Service Discovery Protocol)用のデバイス情報を取得できる。「これはChromecastで、DIALプロトコルに対応している」という情報が入っている。

$ curl http://192.168.1.100:8008/ssdp/device-desc.xml

Chromecastの起動時間や設定情報を取得する

/setup/eureka_info?options=detailを利用する。JSONで吐き出されるので、jqコマンドがインストールされていればjqコマンドにパイプで流しこんで整形してやったほうが見やすいかも。

$ curl -s http://192.168.1.100:8008/setup/eureka_info?options=detail | jq '.'

吐き出される内容についてはこの記事の最後を参照。

参考

上記で取り上げた物の他にも再起動や初期化などのコマンドもある。
Chromecast Hacking Has Begun | fiquett.com

付録:/setup/eureka_info?options=detailで得られる情報など

jqで整形してある(一部項目は隠してある)。長いので続きを読むから。

{
  "wpa_state": 10,
  "wpa_id": 0,
  "wpa_configured": true,
  "version": 7,
  "uptime": 34.86,
  "uma_client_id": "********-****-****-****-************",
  "tos_accepted": true,
  "timezone": "Asia/Tokyo",
  "time_format": 2,
  "ssid": "ExampleAccessPoint",
  "ssdp_udn": "********-****-****-****-************",
  "signal_level": -52,
  "setup_stats": {
    "num_obtain_ip": 0,
    "num_initial_eureka_info": 0,
    "num_connected_wifi_not_saved": 0,
    "num_connect_wifi": 0,
    "num_check_connectivity": 0,
    "historically_succeeded": true
  },
  "setup_state": 60,
  "release_track": "stable-channel",
  "public_key": "(snip)",
  "has_update": false,
  "ethernet_connected": false,
  "detail": {
    "timezone": {
      "offset": 540,
      "display_string": "日本標準時 (Tokyo)"
    },
    "model_name": "Eureka Dongle",
    "manufacturer": "Google Inc.",
    "locale": {
      "display_string": "日本語"
    },
    "icon_list": [
      {
        "width": 98,
        "url": "/setup/icon.png",
        "mimetype": "image/png",
        "height": 55,
        "depth": 32
      }
    ]
  },
  "connected": true,
  "closed_caption": {},
  "cast_build_revision": "1.18.55065",
  "build_version": "55065",
  "bssid": "**:**:**:**:**:**",
  "hotspot_bssid": "**:**:**:**:**:**",
  "ip_address": "192.168.1.100",
  "locale": "ja",
  "location": {
    "longitude": 255,
    "latitude": 255,
    "country_code": "JP"
  },
  "mac_address": "**:**:**:**:**:**",
  "name": "Chromecast",
  "noise_level": -82,
  "opt_in": {
    "stats": true,
    "opencast": false,
    "location": false,
    "crash": true
  }
}

広告を非表示にする
実験中:よい子は次のアドレスにメールを絶対に送らないでください。場合によっては晒しあげされますよ。 ivyrush+htnb.20170313@rita-ch.com viande@rita-ch.com