0

もう一度、JavaでInet6Addressを使用する方法について少し助けが必要です。

IPv4アドレスを取得するためのアプリケーションを開発しているのですが、今度はそれをIPv6に拡張したいと思います。そして、IPv6アドレスを取得できず、IPv4アドレスを取得し続けているようです。

そして、java.net.Inet6Addressをインポートしようとしました。

私が持っている既存のコードを使用して、以下に示します。

public SocketAddress getInetAddress(){
   return channel.getRemote();
}

チャネルはnettyプロジェクトを使用しています。

Inet6Addressを使用するにはどうすればよいですか?

このWebで見つけたように http://docs.oracle.com/javase/1.4.2/docs/api/java/net/Inet6Address.html

public InetSocketAddress getInetAddress(){
   Inet6Address ipv6 = (Inet6Address)channel.getRemoteAddress.**getAddress();**

    return channel.getRemote();
}

.getAddress()を使用できないかどうかを尋ねることもできますか?この問題について誰かが私を助けてくれますか?

これを処理するには、jarファイルをダウンロードする必要がありますか?

私が使用しているJavaのバージョンはJava6です。

Swiftから

4

2 に答える 2

1

あなたが大丈夫なら - 使ってみてください

Java-ipv6

于 2013-01-29T08:46:16.280 に答える
0

あなたのタイプは何channelですか?'netty' を使用したことはありませんが、sun の nio の世界でsaは、 が のインスタンスであると仮定してSocketAddress、 を使用するだけsa.getAddress()です。saが IPv4 アドレスのソケットを表す場合、 のインスタンスを取得するInet4Addressか、Inet6AddressIPv6 アドレスのソケットの場合は を取得します。

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);
...
于 2013-01-29T09:05:33.040 に答える