当hostname为64个字符时,InetAddress.getLocalHost()返回错误的结果

Nis*_*han 5 java linux hostname

我使用下面的代码使用java 1.5打印出linux盒子的主机名

public static void main(String a[]) {
    System.out.println( InetAddress.getLocalHost().getCanonicalHostName() );
}
Run Code Online (Sandbox Code Playgroud)

当我有一个64字符长字符串的系统的主机名时,代码只打印'localhost.localdomain'.如果我的主机名长度小于64,则会正确打印出主机名.系统的最大主机名长度为64(getconf HOST_NAME_MAX为64)

这可能有什么问题?这可能是一个错误(但我倾向于认为问题在我身边)

感谢帮助!

ear*_*las 1

很难猜测您的情况可能会出现什么问题,但根据Java 6 中的相应代码,它可能就像名称解析问题一样简单,或者可能是 Java 错误地认为您的 64 字符主机名是欺骗的。