2

多数の異なるホスト名/IP について知る必要がある Java デスクトップ アプリケーション (Windows に展開) があります。私はソフトウェアでホスト名を使用することを好みます。これは、IP アドレスを入力するよりも説明的で脆弱性が少ないためです。ただし、これは、Windows マシンがこのマッピングの知識を必要とすることを意味します。

それらが対話しているデスクトップ アプリケーションとサーバー ソフトウェアの両方が、プライベート ネットワーク内に展開されます。私が利用できる既存の DNS サービスがネットワーク上にありません。

デスクトップが通信しているサーバー ソフトウェアには、このすべての情報で定義されたホスト ファイルが既にあります。過去に、このホスト ファイルをデスクトップ インストーラに含めて、基本的に Windows マシンのホスト ファイルを上書きしました。それはかなり醜いので、二度とやりたくありません。基本的に、デスクトップ アプリケーション内にホスト ファイルを展開し、ホスト ファイル情報が取り込まれたアプリケーション内である種のネーム サービスを実行できることを望んでいました。そうすれば、他のアプリケーションに影響を与えたり、デスクトップのホスト ファイルをいじったりすることはありません。

独自のクラスの実装について説明しているこの記事を見つけました。NameServiceこれは私が探していた種類のソリューションですが、内部の Sun クラスを使用しています (ここでは回避できますが、そうする必要はありません)。また、記事がかなり古い(2006年)。Java 7 APIでは、この記事で言及されているネットワーク プロパティはリストされなくなりました。これを行うためのより良い/より現代的な方法はありますか?

4

2 に答える 2

1

JDNSSのようなプロジェクトで試してみてください。

ただし、Web で検索すると、このトピックに関する多くのリンクが見つかります。

于 2012-04-12T18:03:29.033 に答える
0

NameServerクラスなどを置き換える複雑さを理解していません。必要なのはホスト名とIPのマッピングだけである場合は、ホスト名とIPを含む配列を作成し、その配列で名前を検索します。または、ファイルをホストのようにフォーマットし、そのファイルをアプリケーション フォルダーに置き、そのファイルから前述の配列を設定します。

ただし、良い解決策は、DNSMASQ や BIND などのローカル DNS サーバーを用意することです。

于 2012-04-14T17:48:32.937 に答える