最近、スマートスピーカーを使って色々と実験を行っていたのですが、そんななかでGoogle Home
のIPアドレス簡単に知る方法があるといいなあと思っていました。スマートフォン経由でHOMEアプリを使えば登録されたデバイスのIPアドレスを知ることはできます。ただ、この情報にたどり着くまでにかなりの手数が必要になるので、割としんどいなあと思っていました。
そこで今回はUbuntuやRaspberryPiなどから簡単に調べる方法をまとめてみました。(画面はRaspberryPiでキャプチャしています)
avahi-utils
をインストール
今回、使用するのはavahi-utils
となります。Google HomeやChromeCastなどでの名前/IPアドレスの解決はBonjour(Avahi、mDNS)
というプロトコルを使用して解決をしています。各種OSとも基本的には標準で対応はしています。(AndroidやChromebookはOSレベルでは対応していますが、デフォルトの状態では解決できないので少し残念)
このAvahiに対応したアプリがavahi-utilsとなります。いつもどおりaptコマンドを使用してインストールを行います。
$ sudo apt update
$ sudo apt install -y avahi-utils
インストールログ
これでインストール完了です。このパッケージで使用するのがavahi-browseコマンドとなります。
Bonjour/Avahiのデバイス認識
インストールすると、avahi-browseコマンドが使用できるようになります。これでローカルエリアでブロードキャストしているデバイスが表示されます。 以下のように実行するとブロードキャストしているデバイスが表示されます。
$ avahi-browse -at
IPv6のデバイスもあるのでかなり多くのデバイスが表示されました。内容はSynology
のNASが多いです。欲しかったGoogle Home(自宅はminiを使用)の情報も取得できました。
上記の画像の中にあるwlan0 IPv4 Google-Home-Mini-ほげほげ
というエントリがGoogle Home miniになっています。
ちなみにブロードキャストされているものを取得するので、一回ではうまく表示されないこともありますので、何度か行うとうまく表示されるかと思います。
(参考)avahi-browseコマンドラインオプション
これでデバイスが認識されているのはわかるのですが、このままではIPアドレスはわかりませんし、複数台のGoogle Homeデバイスがあった場合も判別が付きません。
そこで、デバイス名とIPアドレスを確認できるようにしてみます。
以下の様にオプションスイッチを変更します。ここでは検索するデバイスをgooglecast.tcpに対応したもの限定します。
$ avahi-browse -rk _googlecast._tcp
Chromecastなどもデてきてしまいますが、これでデバイス一覧が表示されました。また、詳細もわかりIPアドレスや登録時につけたデバイス名(自分は「リビング」としています)が表示されました。これでホストネームもわかりますし、デバイス名もわかるので複数台家にデバイスがあっても区別できるかと思います。
おわりに
アプリをインストールし、コマンドを実行するだけで、IPアドレスがわかるのでかなりお手軽です。特にDHCPなどを使用している環境では、IPがどの段階で変わっているかもしれないです。このような方法を調べておくのはいいかなと思います。
また、今回はGoogle Homeとしていましたが、Bonjour/Avahi
を使用している各種デバイスも同様に調べることができるので、DHCPネットワーク内で変更されてしまった、NASやプリンタなどのIPを知りたいときにも便利なのではないかと思います。