質問: ホスト名解決をLAN上で動作させるには何が必要ですか? 私は、LAN上のいくつかの異なるコンピュータ上で動作するネットワークアプリケーションを開発しています。中核となるニーズの1つは、アプリケーションが以前に通信したLAN上のピアのリストを維持して、以前のセッションを復元できるようにすることです。純粋な解決策は、単にIPを覚えてテーブルに格納することですが、ピアのIPが変更されるとどうなりますか? 代わりに、私はIPの変更があっても、彼らはまだ彼らのホスト名を介して到達可能になりますので、私はピアのホスト名を格納すると思った。 (私はホスト名も同様に変更できることは知っていますが、それは十分です)。 ですから私の質問は、Windows/Mac/Linuxクライアントを混在させたLAN上でホスト名解決を行うためには何が必要なのでしょうか?
回答: 中央の権限を使用しないと、これを達成するための唯一の信頼できる方法は、zerconfiguration名前解決の使用によるものです。これは、マルチキャストルータがなければ、解決ホストと同じサブネット上のピアだけを動的に解決できることを意味します。 Macの場合はbonjour、Windowsの場合はnetbiosやssdp、Linuxの場合はavahiのようなものを使用できますが、これらは有効になっていると想定できません。私はこの機能をうまく実行するいくつかのより一般的なプロトコルを見落としているかもしれませんが、私は個人的にあなたのアプリケーションのための迅速なUDPブロードキャスト名前解決プロトコルを一緒に投げるでしょう。いくつかのアイデアのためにこれらを見てみましょう: Zeroconfの名前解決 DNSを使用しないユニバーサルローカルネットワーク名解決方法 http://ja.wikipedia.org/wiki/Zero_configuration_networking#Name_resolution http://ja.wikipedia.org/wiki/Broadcast_address#IP_networking 私は特定のudpポートを聞いて(12000と言うことができます)、ホストを解決する準備ができたら、hello udpパケットを255.255.255.255のポート12000とネットワーク上の他のすべてのホストに送りますあなたのアプリはホスト名、おそらく他の情報を含むパケットで返信する必要があります。