我有一台支持IPv4和IPv6的双栈Linux机器。 现在我的查询是当我试图调用InetAddress.getLocalHost()它总是给我IPv4。
我可以在InetAddress.getLocalHost()响应中同时拥有IPv4和IPv6。 如果没有,那么我将如何从InetAddress.getLocalHost()获得IPv6地址。
答案 0 :(得分: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)中的代码,然后在@Rafiq(Return IPv6 in Java)指示的链接中使用函数getIPv6Addresses来获取IPv6地址。
我希望它有所帮助。