BonjourだとかzeroconfだとかmDNSの話。
閉じたネットワークで`ホスト名.local`でサーバーマシンにアクセスできれば満足。Service Discoveryとかはスルーの方向性で。
Linux (Debian系)
最初から入っているディストリも多いが、ホスト名を設定してavahi-daemon
とlibnss-mdns
を入れるだけ。
avahi-daemon
がresponderでlibnss-mdns
のほうがクライアントとして動作する。
ラズパイやオレンジパイも同じ。
$ sudo -e /etc/hostname
$ sudo apt install avahi-daemon libnss-mdns
Windows10
ネイティブサポートされているようだがファイアーウォールで止められている。UDPポート5353を開放すると使えるようになる。
面倒であれば、Bonjourをインストールするとファイアウォールが自動で構成されるので手っ取り早い。
ホスト名はコンピュータ名を使う。
MacOS, iOS
最初から使用可能。設定のローカルホスト名とか名前とかそこらへんでホスト名を決める。
esp8266
Arduinoスケッチの場合は、ESP8266mDNS
ライブラリをインクルードしてMDNS.begin
をコールするだけ。
この類のマイコンでmdnsはかなり有用。
#include <ESP8266mDNS.h>
MDNS.begin("superhost");
Android
SDKでAPIは提供されているが、アプリ側で対応が必要。そして現状、chromeでは使えない。
スマホは公共ネットワークに接続することも多いだろうから、セキュリティ的に使えなくて正解かもしれない。