如何在java中使用Inet6Address

如何在java中使用Inet6Address,java,netty,Java,Netty,关于如何在java上使用Inet6Address,我再次需要一些小帮助 当我开发一个获取IPv4地址的应用程序时,现在我想把它扩展到IPv6。似乎我无法获得IPv6地址,而它却一直获得IPv4地址 我尝试导入java.net.Inet6Address 使用我现有的代码,如下所示 public SocketAddress getInetAddress(){ return channel.getRemote(); } 频道正在使用netty项目 我如何处理Inet6Address 正如我在这

关于如何在java上使用Inet6Address,我再次需要一些小帮助

当我开发一个获取IPv4地址的应用程序时,现在我想把它扩展到IPv6。似乎我无法获得IPv6地址,而它却一直获得IPv4地址

我尝试导入java.net.Inet6Address

使用我现有的代码,如下所示

public SocketAddress getInetAddress(){
   return channel.getRemote();
}
频道正在使用netty项目

我如何处理Inet6Address

正如我在这个网站上发现的

我还可以问一下,如果.getAddress()不能使用,有人能帮我解决这个问题吗

我需要下载一个jar文件来处理这个问题吗

我使用的java版本是Java6


从Swift

如果您没有问题,请尝试使用


您的
频道的类型是什么?从未使用过“netty”,但在sun的nio世界中,假设
sa
SocketAddress
的一个实例,只需使用
sa.getAddress()
。如果
sa
表示IPv4地址上的套接字,则当它是IPv6地址上的套接字时,您将获得
Inet4Address
的实例,或
Inet6Address

添加一些IPv6绑定代码:

InetAddress[] addresses = InetAddress.getAllByName("localhost");
Inet6Address add6 = null;
for(InetAddress add : addresses) { 
    if (add instanceof Inet6Address) {
        add6 = add;
        break;
    }
}
if (add6==null)
    throw new RuntimeException("no IPv6 local address found!");
InetSocketAddress sa=new InetSocketAddress(add6, port);
...

Hi-TechExchange,呃,我正在做的是远程获取IPv6地址。使用netty。我可以用你提供的链接吗?我可以举一些例子。从Swiftis it
org.jboss.netty.channel.socket.SocketChannel
?也许我们应该更深入地研究netty代码……您好,不,是这样的,但它来自org.jboss.netty.channel.channel getRemoteAddress()返回类型是SocketAddress。它来自这个网站。您的应用程序是服务器端还是客户端?服务器端。那么我可以使用与Inet6Address相关的东西吗?
InetAddress[] addresses = InetAddress.getAllByName("localhost");
Inet6Address add6 = null;
for(InetAddress add : addresses) { 
    if (add instanceof Inet6Address) {
        add6 = add;
        break;
    }
}
if (add6==null)
    throw new RuntimeException("no IPv6 local address found!");
InetSocketAddress sa=new InetSocketAddress(add6, port);
...