1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Google Homeのホスト名の取得方法

Posted at

背景

Google HomeのIPアドレスは、arp -aコマンドで分かるが、
プライベートIPアドレスが動的に欲しいなと思ったら、ホスト名が分からず、ちょっとハマったので備忘録。

ホスト名とは

例えば、ラズパイなら、ホスト名は、raspberrypi.localになっているので、raspberrypi.localを名前解決すれば、動的なIPアドレスを得られる。しかし、ホスト名がわからないと、動的にIPアドレスを得られない。

ホスト名の取得方法

こちらの記事を参考にしたら、簡単にできた。

pi@raspberrypi:~ $ sudo apt -y install avahi-utils
...
pi@raspberrypi:~ $ avahi-browse -at
+  wlan0 IPv6 _____________________MacBook Pro              _companion-link._tcp local
+  wlan0 IPv4 _____________________MacBook Pro              _companion-link._tcp local
+  wlan0 IPv4 57XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX          _googlezone._tcp     local
+  wlan0 IPv4 Google-Nest-Mini-57XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX _googlecast._tcp     local
+  wlan0 IPv4 googlerpc                                     _googlerpc._tcp      local

となる。57XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.localがホスト名である。
ping 57XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.localが成功することで確認できる。

そういうわけで、名前解決するプログラムも完成して、問題も解決した。

const googlehome = require('google-home-notifier')
const dns = require("dns")
const language = 'ja';

const msg = process.argv[2]
googlehome.device('Google-Home', language);
dns.lookup('57XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.local', (err, address, family) => {
    console.log('Device Google-Home at %j (IPv%s)', address, family);
    googlehome.ip(address);
    try {
        googlehome.notify(msg, function(res) {
            console.log(res);
        });
    } catch(err) {
        console.log(err);
    }
});
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?