同じネットワークのMacを見つけてIPを調べる

たまに横にあるDHCPでIPをとってるMacbookのIPが知りたい、と思うわけですが、その場にいるのであればMacbook側でifconfigとかステータス表示系のウィジェットなんかで簡単に知ることができますが、今回はネットワーク越しにできる方法がないか調べてみました。(追記: MacからMacを見つける、という想定で書いています。)

リストするにはMacに標準搭載されているBonjour(Zeroconf, multicast DNS)を使います。ここではサービスタイプにsshを使っていますが、httpやsmbを使ってもいろいろと出てくるでしょう。

$ mDNS -B _ssh._tcp

mDNSコマンドに関しては僕も詳しくしらないのでmanを見たりして頂ければと思います。

さらなるアドバタイズを待つようで、コマンドが終わらないので適当にCtrl-Cなどで終了します。リストから、IPを調べたいマシンのInstance Nameをresolveipコマンドに入れると解決できます。(.localをつけるのがミソ?)

$ resolveip hoge.local

追記: resolveipはどうやらMySQLをインストールするとインストールされるコマンドのようでした。MySQL一式がインストールされていない環境ではping hoge.localなどとして表示されるIPをもとに知ることができそうです。

どうやらsshなど一部の組み込みコマンドではこのIPアドレスの解決は自動的に行われるようで、以下のようにして直接接続することも可能でした。

$ ssh hoge.local