主机名是否支持下划线?

时间:2017-10-22 14:18:47

标签: java ping hostname inetaddress

在我的unix vm中,我可以在/ etc / hosts中提供以下条目 ABC_XYZ_HOSTNAME.abc.com 15.115.112。***之后我可以" ping ABC_XYZ_HOSTNAME.abc.com"成功。但我的代码正在打破

InetAddresses.forString(ip)

例外,带有IP字符串文字的IllegalArgumentException无效。

所以问题是,下划线是否支持主机名或其他错误?

1 个答案:

答案 0 :(得分:2)

您无法在InetAddresses.forString中使用DNS名称。此方法的javadoc说明:

  

返回具有给定字符串表示形式的InetAddress。

     

这故意避免所有名称服务查找(例如没有DNS)。

     

参数:       ipString - 包含IPv4或IPv6字符串文字的字符串,例如“192.168.0.1”或“2001:db8 :: 1”

DNS名称不是有效值。

对于DNS lookup of your address,您应该使用

InetAddress.getByName(host)