- 2010-05-24 (月) 0:03
- インターネット
Mac を使ってネットワークにつなぐと,Finder の左の欄にある共有というところに同じネットワーク上に他の Mac のアイコンがあらわれたりすることがあります.これは Bonjour という機能によるものです.一方で LAN ディスクや Linux サーバはファイル共有機能があっても Mac ではないためにここに現れてくることはありません.しかしそれでは不便だ!ということなのでこの記事ではどのようにすればそれらのサーバがここに現れるようになったのかのメモを書いておきます.
基本的な方法
ちなみに画像に現れている iPad は架空の iPad です.Terminal を起動し,以下のようなコマンドを打ち込みます.
$ dns-sd -P "Imo's iPad" _device-info._tcp local 445 imo-ipad.local 192.168.128.1 model=iPad &
$ dns-sd -P "Imo's iPad" _smb._tcp local 445 imo-ipad.local 192.168.128.1
これを実行するだけで画像のように Imo's iPad と書かれた物が現れるようになったと思います.上記の必要な部分を書き換えるだけで一般的な用途に耐えると思います.
dns-sd -P コマンドオプション
dns-sd のコマンドオプションは以下のようになっています.
dns-sd -P 名称 プロトコル名 local ポート番号 ホスト名 IPアドレス [テキストレコード…]
- 名称 … 表示される名称
- プロトコル名 … DNS SRV Service Types を参照
- local … おまじない(localと打ち込みましょう)
- ポート番号 … サービスを行うプロトコルの番号
- ホスト名 … ホスト名.もしホスト名を持っていなければ 〜.local という名前を作って打ち込みんでください(ただし競合すると失敗するので注意してください)
- IPアドレス … サービスを行うサーバの IP アドレス
- テキストレコード … 追加情報をここに書きます
Bonjour されているものの確認方法
Bonjour Browser というソフトウェアがあり,これを使うと何が Bonjour されているかを GUI で簡単に確認できます.
またコマンドで dns-sd -Z プロトコル名 local とすることによっても確認できます.
その他の情報
Linux に dns-sd をインストールする
Apple のページにプログラムが公開されているのでそちらからダウンロードして各自 make してください.
ただし自分の Linux 環境でそのまま make するとこけてしまいました.Makefile の中の CFLAGS に -fno-stack-protector を追記した上で gcc-4.2 を用いてコンパイルしたら通ったのでコケた場合は試してください.
プロトコル名
- Apple Filing Protocol … _afpovertcp._tcp を指定しなければならない
- SMB … _smb._tcp を指定するだけ.txtレコードでpathを指定可能
- HTTP, HTTPS … _http._tcp のみしか存在しない.https をサービスしているサーバは http もサービスしているだろうという謎の仕様.host 名は指定できない.ドットが必ず最後につくのは仕様.
_device-info
デバイスの定義のために存在する./System/Library/CoreServices/CoreTypes.bundle 配下で色々と定義されている.その中の Contents/Info.plist を見るとアイコンの対応関係がわかる.
modelとしては "Xserve" "iPad" "AirPort" "TimeCapsule" "iPhone" など色々ある.バージョン違い,例えば Unibody iMac 27 インチは "iMac10,1" または "iMac11,1" などという表記になっている.
常時起動するには
launchctl で調べてください.
- Newer: ICPCのビジュアライザ
- Older: Gmail Multiple Inboxes の使い方
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://imoz.jp/2010/05/use-bonjour-in-mac/trackback/
- Listed below are links to weblogs that reference
- Mac の Bonjour を使いこなす from 超現実いもす(imos)の日記