2012-02-06 10 views
7

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

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

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

+0

これが企業ネットワーク上にある場合は、ホスト名をDNSサーバーに登録できます。プライベートLANを使用している場合は、このアプリケーションを単一のサブネットLANまたは別のブロードキャストドメインにセグメント化できるネットワーク上で使用するためのさまざまなオプションがあります。 (別個のサブネット)あなたのネットワークはどのように見えますか? – resmon6

+0

このアプリケーションは、単一のサブネットLANで動作します。しかし、それは自分のLAN内で数千の異なる顧客に配備されます。だから私は彼らが使用しているルータ、またはどのネットワークサービスが利用可能であるかについて仮定をすることはできません。 – lms

答えて

6

中央の権限を使用しないと、これを実現する唯一の信頼できる方法は、ゼロコンフィギュレーションの名前解決を使用することです。これは、マルチキャストルータがなければ、解決ホストと同じサブネット上のピアだけを動的に解決できることを意味します。 Macの場合はbonjour、Windowsの場合はnetbiosやssdp、Linuxの場合はavahiのようなものを使用できますが、これらは有効になっていると想定できません。私はこの機能をうまく実行するいくつかのより一般的なプロトコルを見落としているかもしれませんが、私は個人的にあなたのアプリケーションのための迅速なUDPブロードキャスト名前解決プロトコルを一緒に投げるでしょう。 (12000を言うことができます)私が聞くために特定のUDPポートを選ぶだろう

Zeroconf Name resolution

Universal local network name resolution method without DNS?

http://en.wikipedia.org/wiki/Zero_configuration_networking#Name_resolution

http://en.wikipedia.org/wiki/Broadcast_address#IP_networking

と:いくつかのより多くのアイデアのためにこれらを見てみましょうホストを解決する準備ができたら、 "hello" UDPパケットをポート12000の255.255.255.255に送り、アプリを実行するネットワーク上の他のすべてのホストはホスト名、場合によっては他の情報を含むパケットで応答します。

関連する問題