ホスト名解決をLAN上で動作させるには何が必要ですか?

私は、LAN上のいくつかの異なるコンピュータ上で動作するネットワークアプリケーションを開発しています。中核となるニーズの1つは、アプリケーションが以前に通信したLAN上のピアのリストを維持して、以前のセッションを復元できるようにすることです。純粋な解決策は、単にIPを覚えてテーブルに格納することですが、ピアのIPが変更されるとどうなりますか?

代わりに、私はIPの変更があっても、彼らはまだ彼らのホスト名を介して到達可能になりますので、私はピアのホスト名を格納すると思った。 (私はホスト名も同様に変更できることは知っていますが、それは十分です)。

ですから私の質問は、Windows/Mac/Linuxクライアントを混在させたLAN上でホスト名解決を行うためには何が必要なのでしょうか?

7
アプリケーションは単一のサブネットLANで動作します。しかし、それは自分のLAN内で数千の異なる顧客に配備されます。だから私は彼らが使用しているルータ、またはどのネットワークサービスが利用可能であるかについて仮定をすることはできません。
追加された 著者 lms,
企業ネットワーク上にある場合は、ホスト名をDNSサーバーに登録できます。プライベートLANを使用している場合は、このアプリケーションを単一のサブネットLANまたは別のブロードキャストドメインにセグメント化できるネットワーク上で使用するためのさまざまなオプションがあります。 (別個のサブネット)あなたのネットワークはどのように見えますか?
追加された 著者 resmon6,

1 答え

中央の権限を使用しないと、これを達成するための唯一の信頼できる方法は、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とネットワーク上の他のすべてのホストに送りますあなたのアプリはホスト名、おそらく他の情報を含むパケットで返信する必要があります。

6
追加された