InetAddress.getHostAddress() ipv6はJDK 1.6に準拠していますか?InetAddress.getHostAddress()ipv6に準拠していますか?
具体的に私がやっている
InetAddress.getLocalHost().getHostAddress()
は、それに準拠したIPv6ますか? ipv4とv6の両方のアドレスで動作しますか?
InetAddress.getHostAddress() ipv6はJDK 1.6に準拠していますか?InetAddress.getHostAddress()ipv6に準拠していますか?
具体的に私がやっている
InetAddress.getLocalHost().getHostAddress()
は、それに準拠したIPv6ますか? ipv4とv6の両方のアドレスで動作しますか?
私はInetAddressクラスのコードを見ましたが、実際に正しいことをしています。ここで
if (isIPv6Supported()) {
o = InetAddress.loadImpl("Inet6AddressImpl");
}
else {
o = InetAddress.loadImpl("Inet4AddressImpl"); }
return (InetAddressImpl)o;
}
拡張クラスjava.net.Inet6Address
はIPv6に準拠しています。
のJavaDoc:
このクラスは、インターネットプロトコルバージョン6(IPv6)アドレスを表しています。 RFC 2373:IP Version 6 Addressing Architectureによって定義されています。あなたがしなければ
基本的には、InetAddress.getByName()
またはInetAddress.getByAddress()
方法は、名前またはアドレスがIPv4またはIPv6の名前/住所があるかどうかを識別し、それぞれの拡張Inet4Address
/Inet6Address
を返します。
InetAddress.getHostAddress()
については、nullを返します。 IPv6文字列表現可能アドレスを返すには、java.net.Inet6Address.getHostAddress()
が必要です。
ありがとうございます - InetAddress.getLocalHost()。getHostAddress()は安全ですか?私の編集を見てください。 – Fakrudeen
@Fakrudeen、 'Inet6Address'を返すか、' InetAddress'ソースコードを読むかを調べるには 'if(InetAddress.getLocalHost()instanceof Inet6Address)'を実行する必要があります。 –
@Elite、私はソースコードを見ました。 IPv6がサポートされているかどうかによって、正しいことをしているようです。しかし、私はちょうどコミュニティと確認したかったのです。 InetAddress静的ブロック: \t if(IPv6がサポートされています){ \t o = InetAddress.loadImpl( "Inet6AddressImpl"); \t} else { \t o = InetAddress.loadImpl( "Inet4AddressImpl"); \t} \t return(InetAddressImpl)o; } – Fakrudeen
は、上記の分析に基づいてテストするためのコードです:
public static void main(String[] args) {
// TODO Auto-generated method stub
InetAddress localIP;
try {
localIP = InetAddress.getLocalHost();
if(localIP instanceof Inet6Address){
System.out.println("IPV6");
} else if (localIP instanceof Inet4Address) {
System.out.println("IPV4");
}
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
結論は、それが実際にIPv6対応であるでした。 – Fakrudeen
あなたはまだ答えを受け入れる必要があります。 :-) –
私の編集を承認していただけますか?答えを受け入れますか?今のように、人々は答えがイエスか否かを確信していません。 – Fakrudeen