java - 如何在 Java 中实现自定义本地 DNS 服务?

标签 java networking dns

我有一个 Java 桌面应用程序(部署在 Windows 上)需要了解一堆不同的主机名/IP。我更喜欢在软件中使用主机名,因为它比输入 IP 地址更具描述性/更不脆弱。但是,这意味着 Windows 机器需要了解此映射。

与它们通信的桌面应用程序和服务器软件都部署在专用网络中。网络上没有我可以利用的现有 DNS 服务。

与桌面通信的服务器软件已经有一个定义了所有这些信息的主机文件。过去,我在桌面安装程序中包含了这个主机文件,基本上破坏了 Windows 机器的主机文件。这太丑陋了,我不想再这样做了。我希望我基本上可以在我的桌面应用程序中部署我的主机文件,并在填充了主机文件信息的应用程序中运行某种名称服务。这样我就不会影响其他应用程序,也不会弄乱桌面的主机文件。

我找到了 this article描述实现您自己的 NameService 类。这是我一直在寻找的解决方案,但是,它使用内部 Sun 类(我可以在这里摆脱它,但我宁愿不必这样做)。另外,这篇文章很旧(2006 年)。在Java 7 API ,文章提到的网络属性不再列出。有没有更好/更现代的方法来做到这一点?

最佳答案

尝试像 JDNSS 这样的项目.

但是,如果您在网络上搜索,您可以找到许多关于该主题的链接。

关于java - 如何在 Java 中实现自定义本地 DNS 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10128668/

相关文章:

java - Guice注入(inject)和RequestFactory : Extending ServiceLayerDecorator

c# - 如何在 C#.NET/Mono 中使用 HTTP 库来使用请求-响应

docker - Nginx在docker-compose中挂起 “http://localhost”

dns - 域位于一个 IP 地址,子域位于不同的 IP 地址

Java:为 GZIPOutputStream 的 Deflater 使用 setDictionary 时出现 CRC 错误

java - 在 iText 7 的 html2pdf 中显示货币符号的简单方法

java - 尝试输出冒泡排序数组

objective-c - Objective-C 中的简单套接字

linux - 有关 DS 记录更新的 DNSSEC key 翻转

azure - 映射主机名和外部 IP 的 DNS 记录