当前位置: 首页 > 面试题库 >

为什么InetAddress.getLocalHost()。getHostName()返回不同于bash“主机名”的值?

谢哲瀚
2023-03-14
问题内容

我有一个build.gradle任务,它像我的dev框上的冠军一样工作,生成了一个属性文件,该文件记录了生成生成的机器的名称。逻辑很简单…

def hostname = InetAddress.getLocalHost().getHostName();

在我的开发箱中,这总是产生与bash shell中的主机名相同的值。

bobk-mbp:DM_Server bobk$ hostname
bobk-mbp.local

但是,在我们的jenkins
CI服务器上,bash主机名返回一件事,但是我对InetAddress.getLocalHost()。getHostName()的调用;返回其他内容。在jenkins机器上需要进行哪些更改才能使这两个返回相同的值?


问题答案:

假设您使用的是Linux,则从o / s执行的hostname命令将返回内核的已配置主机名。

InetAddress.getHostName()使用操作系统中配置的命名服务(DNS)对服务器的IP地址进行反向查找。

如果需要操作系统所理解的主机名,那么通过System.getenv从环境变量获取主机名可能是最简单的选择。这不是一种完全健壮的方法,但是无需深入研究网络或系统管理员就可以了。



 类似资料:
  • } 我得到了下面的结果。但是在这个结果中,高亮显示的行具有相同的列名,但是别名不同。为什么hibernate会得到相同的Cloumn? 冬眠:删除表,如果存在hibernate_sequence hibernate:删除表(如果存在)UserDetails Hibernate:如果存在,则删除表车辆Hibernate:创建表hibernate_sequence(next_val bigint)En

  • 问题内容: 我运行了跟随脚本(java),它给了我奇怪的结果。有人可以帮忙解释吗? 记录结果(彼此不同): - - 背景 - - 我想将自己的keyGenrator用于@Cacheable批注(Spring和ehCache)。 在这种情况下,我发现缓存总是丢失的。 然后,我必须更改为: 谢谢 问题答案: 这是因为for 不会被覆盖。即使条目相同,也没有理由为什么的两个实例应该具有相同的值。 试试这

  • 为什么以下输出为True? 这将始终输出,即使条件似乎表明并非如此。如果我删除括号,那么它可以工作,但我不明白为什么。

  • 我寻找如何在堆栈溢出的Java中进行IP查找,但答案与我已经在做的匹配,并没有解决我的问题。 问题:此代码与预期的一些IP广告,而不是与其他一些。 例如,对于IP 157.55.39.29,输出为: 根据Linux命令,此结果似乎是正确的: 返回: 此IP地址的完全限定域名,如果安全检查不允许此操作,则返回IP地址的文本表示形式。 但我很确定这不是安全检查的问题...或者我不明白出了什么问题。 你

  • 我正在使用Microsoft Graph Users API根据我们的ActiveDirectory验证用户名或电子邮件地址列表。名称搜索: https://graph.microsoft.com/v1.0/me/people/?$search=John.Smith 返回其他数据,如和。但如果我使用电子邮件搜索: null 我是否需要额外的权限来获取相同的数据? 更新:我按照下面的建议在https

  • 我发现,解析不存在的主机名总是返回属于“akamaitechnologies.com”的地址(例如23.221.222.250)。它确实适用于确实存在的主机。 法典: InetAddress或Google搜索的文档几乎没有帮助。有人声称应该发生一个未知的hostException,但我却没有。 为什么会发生这种情况?