Google HomeのIPアドレスが知りたい!

最近、スマートスピーカーを使って色々と実験を行っていたのですが、そんななかでGoogle HomeIPアドレス簡単に知る方法があるといいなあと思っていました。スマートフォン経由でHOMEアプリを使えば登録されたデバイスIPアドレスを知ることはできます。ただ、この情報にたどり着くまでにかなりの手数が必要になるので、割としんどいなあと思っていました。

そこで今回はUbuntuやRaspberryPiなどから簡単に調べる方法をまとめてみました。(画面はRaspberryPiでキャプチャしています)

f:id:ueponx:20210505230806p:plain

avahi-utilsをインストール

今回、使用するのはavahi-utilsとなります。Google HomeやChromeCastなどでの名前/IPアドレスの解決はBonjour(Avahi、mDNS)というプロトコルを使用して解決をしています。各種OSとも基本的には標準で対応はしています。(AndroidChromebookはOSレベルでは対応していますが、デフォルトの状態では解決できないので少し残念)

このAvahiに対応したアプリがavahi-utilsとなります。いつもどおりaptコマンドを使用してインストールを行います。

$ sudo apt update
$ sudo apt install -y avahi-utils

インストールログ

f:id:ueponx:20210505211442p:plain

これでインストール完了です。このパッケージで使用するのがavahi-browseコマンドとなります。

Bonjour/Avahiのデバイス認識

インストールすると、avahi-browseコマンドが使用できるようになります。これでローカルエリアでブロードキャストしているデバイスが表示されます。 以下のように実行するとブロードキャストしているデバイスが表示されます。

$ avahi-browse -at

IPv6のデバイスもあるのでかなり多くのデバイスが表示されました。内容はSynologyNASが多いです。欲しかったGoogle Home(自宅はminiを使用)の情報も取得できました。

f:id:ueponx:20210505211458p:plain

上記の画像の中にあるwlan0 IPv4 Google-Home-Mini-ほげほげというエントリがGoogle Home miniになっています。

ちなみにブロードキャストされているものを取得するので、一回ではうまく表示されないこともありますので、何度か行うとうまく表示されるかと思います。

(参考)avahi-browseコマンドラインオプション f:id:ueponx:20210505215149p:plain

これでデバイスが認識されているのはわかるのですが、このままではIPアドレスはわかりませんし、複数台のGoogle Homeバイスがあった場合も判別が付きません。

そこで、デバイス名とIPアドレスを確認できるようにしてみます。

以下の様にオプションスイッチを変更します。ここでは検索するデバイスgooglecast.tcpに対応したもの限定します。

$ avahi-browse -rk _googlecast._tcp

Chromecastなどもデてきてしまいますが、これでデバイス一覧が表示されました。また、詳細もわかりIPアドレスや登録時につけたデバイス名(自分は「リビング」としています)が表示されました。これでホストネームもわかりますし、デバイス名もわかるので複数台家にデバイスがあっても区別できるかと思います。

f:id:ueponx:20210505223541p:plain

おわりに

アプリをインストールし、コマンドを実行するだけで、IPアドレスがわかるのでかなりお手軽です。特にDHCPなどを使用している環境では、IPがどの段階で変わっているかもしれないです。このような方法を調べておくのはいいかなと思います。 また、今回はGoogle Homeとしていましたが、Bonjour/Avahiを使用している各種デバイスも同様に調べることができるので、DHCPネットワーク内で変更されてしまった、NASやプリンタなどのIPを知りたいときにも便利なのではないかと思います。