スマートホーム機器の多くは、IPアドレスを手動で設定しなくても使えます。ゼロコンフィグのマルチキャスト探索プロトコルで、自分の機能を周囲に知らせているためです。Home Assistantの連携を開発するとき、AirPlayスピーカーの音切れを調べるとき、IPカメラの映像URLを探すときには、この仕組みを直接のぞくのが近道です。
この記事では、Windows上からmDNS、UPnP SSDP、WS-Discoveryの3つのプロトコルで機器を検出する手順を解説します。
ローカル探索の3つの主要プロトコル
- mDNS / DNS-SD(Bonjour / ZeroConf): Apple AirPlay、Google Cast(Chromecast)、ESPHomeのノード、OctoPrint、ネットワークプリンターなどが使用します(
.localドメイン)。 - UPnP / SSDP: Philips Hueのブリッジ、Sonosのオーディオ機器、DLNAメディアサーバー、スマートテレビなどが使用します(UDPポート1900)。
- WS-Discovery: 最近のネットワークプリンター、NAS、ONVIF対応の監視カメラなどが使用します(UDPポート3702)。
手順: スマートホーム機器を検出する
Pythonスクリプトを個別に用意したり、重いパケットキャプチャソフトを入れたりしなくても、3つのプロトコルすべてに対応したリスナーが内蔵されています。
探索プロトコルを選ぶ
fTool Home Network Probe Proを起動し、タイトルバーの歯車アイコンから「設定」を開きます。「探索プロトコル」では、mDNS / DNS-SD、UPnP / SSDP、WS-Discoveryが最初からオンになっています。マルチキャストの応答だけを見たいときは、ほかのプロトコルをオフにしてください。選んだ設定は次の探索にも引き継がれます。
「探索を開始」をクリック
「探索を開始」をクリックすると、mDNS(UDP 5353)でのDNS-SDの問い合わせ、SSDPのM-SEARCH(UDP 1900)、WS-Discoveryのプローブ(UDP 3702)を送り、応答を機器ごとに1枚のカードへまとめます。mDNSは15秒ほど応答を待ち続けるので、返事の遅い機器も一覧に入ります。
機器ごとのサービスを確認
機器を選ぶと「機器の詳細」が開きます。UPnP機器が申告する機器名・メーカー・モデル名・型番に加えて、機器が公開しているサービスの種類が、ポートとTXTレコードつきで並びます。機器のWeb画面を開きたいときは、表示されたIPアドレスとHTTPのポート番号をブラウザーに入力します。
検出できる情報
- 機器名、メーカー、モデル名、型番(UPnPの機器記述から)
- サービスの種類(例:
_googlecast._tcp、_spotify-connect._tcp)と、そのポート番号・TXTレコード - MACアドレスと、そこから調べたメーカー名
fTool Home Network Probe Pro
家庭や小規模オフィスのLANにつながる機器を15種類の探索方式で見つけ、機器名・メーカー・型番・開いているポート・サービスを表示します。サブスクリプションのない買い切り型アプリです。