Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中以编程方式在本地dns上注册域名?_Java_Dns_Virtualization - Fatal编程技术网

如何在java中以编程方式在本地dns上注册域名?

如何在java中以编程方式在本地dns上注册域名?,java,dns,virtualization,Java,Dns,Virtualization,我正在编写一个虚拟机资源调配工具。一个任务是当机器启动并运行时,它需要从DNS获取主机名,我需要在那里注册它的ip。有没有一种方法可以用java编程实现这一点?两条建议 如果机器不需要特殊名称,但可以分配任意DHCP租约,则可以根据地址为每个可能的地址指定一个固定名称。您可能见过许多ISP为其DSL客户这样做,例如82-69-170-87.DSL.in-addr.zen.co.uk是IP地址82.69.170.87此选项非常简单,因为它不需要新配置的虚拟机或配置系统的任何特殊功能 使用TSIG进

我正在编写一个虚拟机资源调配工具。一个任务是当机器启动并运行时,它需要从DNS获取主机名,我需要在那里注册它的ip。有没有一种方法可以用java编程实现这一点?

两条建议

如果机器不需要特殊名称,但可以分配任意DHCP租约,则可以根据地址为每个可能的地址指定一个固定名称。您可能见过许多ISP为其DSL客户这样做,例如82-69-170-87.DSL.in-addr.zen.co.uk是IP地址82.69.170.87此选项非常简单,因为它不需要新配置的虚拟机或配置系统的任何特殊功能

使用TSIG进行动态DNS。检查您的DNS服务器是否支持基于TSIG的动态DNS,并阅读其手册以了解如何授权计算机执行更新。在许多Unix系统上,您可以使用bind的nsupdate工具使用TSIG执行动态更新,但如果您希望在纯Java中执行此操作,您将需要了解哪些应该具备所需的一切。这将涉及相当多的工作,但允许您根据您想要实现的规则为每个VM命名并分配特定的地址


我不是100%确定这是否是您要问的,但我想您可能会问,一旦本地计算机启动,如何获取其主机名?i、 e.反向DNS查找

如果是这样,您可以这样做:

InetAddress.getLocalHost().getHostName()
这将以字符串形式返回映射到LAN IP的当前计算机的主机名