2015-06-11 70 views
0

我有一个支持IPv4和IPv6的双栈Linux机器。 现在我的查询是当我试图调用InetAddress.getLocalHost()它总是给我IPv4。如何从InetAddress.getLocalHost()获得IPv6

我可以在InetAddress.getLocalHost()响应中同时使用IPv4和IPv6。 如果不是那么我将如何从InetAddress.getLocalHost()获得IPv6地址。

+0

请参阅:http://stackoverflow.com/questions/11974232/return-ipv6-in-java – Rafiq

回答

0

我回答类似的问题在这里:How to fetch both IPv4 and IPv6 on dual stack OS

在Linux中,InetAddress.getLocalHost()将寻找的主机名,然后返回由DNS分配给该主机名的第一个IP地址。如果您在文件/ etc/hosts中具有该主机名,则会为该主机名获取该文件中的第一个IP地址。

可以在(How to fetch both IPv4 and IPv6 on dual stack OS)指示的链接使用的代码,然后使用功能getIPv6Addresses由@Rafiq(Return IPv6 in Java)表示该链接仅获得IPv6地址。

我希望它有帮助。