我有一台支持IPv4和IPv6的双堆栈Linux机器。现在我的查询是,当我试图调用InetAddress.getLocalHost()时,它总是给我IPv4。
我可以在IPv4 ()响应中同时使用InetAddress.getLocalHost和IPv6。如果没有,我将如何从InetAddress.getLocalHost()获得InetAddress.getLocalHost地址。
发布于 2015-06-14 23:33:20
我在这里回答了一个类似的问题:How to fetch both IPv4 and IPv6 on dual stack OS
在Linux中,InetAddress.getLocalHost()将查找主机名,然后返回由DNS分配给该主机名的第一个IP地址。如果文件/etc/host中有这个主机名,它将获得该主机名在该文件中的第一个IP地址。
您可以使用所指示的链接(How to fetch both IPv4 and IPv6 on dual stack OS)中的代码,然后在@Rafiq (Return IPv6 in Java)所指示的链接中使用函数getIPv6Addresses只获得IPv6地址。
希望能帮上忙。
https://stackoverflow.com/questions/30777453
复制相似问题