use*_*877 6 java dns networking fqdn ipv6
我正在尝试使用Java编写一个简单的程序,给定版本为4或6的IP,将返回其FQDN.给定ipv4地址时,以下代码可以正常工作,但只有在输入ipv6地址时才会返回给定的地址.
InetAddress inet;
try { inet = InetAddress.getByName(theIpAddress); }
catch(UnknownHostException e) { System.out.println("Unknown Host"); return; }
System.out.println(inet.getHostAddress(););
System.out.println(inet.getHostName(););
Run Code Online (Sandbox Code Playgroud)
每当我输入ipv6时,getHostName()将只返回相同的ipv6,即使我知道ipv6将解析为FQDN.此外,如果我输入ipv6主机名,例如ipv6.google.com,而不是ipAddress,则会发生异常.
我对这些东西不熟悉所以非常感谢任何帮助.谢谢.
尝试inet.getCanonicalHostName();
“获取此 IP 地址的完全限定域名”。
如果您使用 构造 InetAddress InetAddress.getByName()
,getHostName()
将返回您构造它所用的内容。 getCanonicalHostName()
强制进行反向名称查找。