JavaTM Platform
Standard Ed. 6

java.net
클래스 Inet6Address

java.lang.Object 
  상위를 확장 java.net.InetAddress 
      상위를 확장 java.net.Inet6Address
모든 구현된 인터페이스:
Serializable


public final class Inet6Address
extends InetAddress

이 클래스는, 인터넷 프로토콜 버젼 6 (IPv6) 주소를 나타냅니다. 「RFC 2373: IP Version 6 Addressing Architecture」로 정의되고 있습니다.

IP 주소의 텍스트 표현

메소드의 입력으로서 사용되는 Ipv6 주소의 텍스트 표현은, 다음의 몇개의 형식이 됩니다.
  1. 추천의 형식은 x:x:x:x:x:x:x:x 입니다. 여기서, 「x」는, 주소를 8 개의 16 비트 부분으로 나누어 16 진수로 나타낸 값입니다. 이것은 완전한 형식입니다. 다음에 예를 나타냅니다.

    1080:0:0:0:8:800:200C:417A

    각 필드내의 선두 부분의 제로는 기술할 필요가 없는 점에 주의해 주세요. 다만, 다음에 설명하는 경우를 제외해, 각 필드에는 적어도 1 개의 수치가 필요합니다.

  2. 특정 스타일의 IPv6 주소를 할당하기 위한 몇개의 방식이 원인이 되어, 주소내에 제로 비트의 긴 열이 포함되는 일이 자주 있습니다. 제로 비트를 포함한 주소를 기술하기 쉽게하기 위해(때문에), 제로를 압축하는 특수한 구문을 이용할 수 있습니다. 「::」의 사용은, 제로만으로부터 완성되는 16 비트의 그룹이 복수 존재하는 것을 나타냅니다. 「::」은, 1 개의 주소내에서 1 회 밖에 사용할 수 없습니다. 또, 「::」을 사용하면, 주소내의 선두의 제로 또는 말미의 제로, 혹은 그 양쪽 모두를 압축할 수도 있습니다. 다음에 예를 나타냅니다.

    1080::8:800:200C:417A
  3. IPv4 및 IPv6 노드가 혼재하는 환경에 대응하는 경우에 한층 더 편리한 대체 형식이 x:x:x:x:x:x:d.d.d.d 입니다. 여기서, x 는 상위 6 개의 16 비트 주소의 16 진수값로, d 는 하위 4 개의 8 비트 표준 IPv4 표현 주소의 10 진수값입니다. 다음에 예를 나타냅니다.

    ::FFFF:129. 144.52. 38
    ::129. 144.52. 38

    여기서, 「::FFFF:d.d.d.d」와「::d.d.d.d」는 각각, 일반적인 형식의 IPv4 맵 IPv6 주소와 IPv4 호환 IPv6 주소입니다. IPv4 부분은 「d.d.d.d」의 형식이 아니면 안 되는 점에 주의해 주세요. 다음의 형식은 무효입니다.

    ::FFFF:d.d.d
    ::FFFF:d.d
    ::d.d.d
    ::d.d

    다음의 형식은 유효합니다.

    ::FFFF:d

    다만, 이것은, 다음의 IPv4 호환 IPv6 주소의, 관례에 따르지 않는 표현입니다.

    ::255. 255.0.d

    여기서, 「::d」는 일반적인 IPv6 주소 「0:0:0:0:0:0:0:d」에 대응합니다.

텍스트 표현을 출력치로서 돌려주는 메소드에서는, 완전한 형식이 사용됩니다. Inet6Address 가 완전한 형식을 돌려주는 것은, 다른 텍스트 데이터와 조합해 사용하는 경우에도, 애매하게 안 되기 때문입니다.

특수한 IPv6 주소

IPv4 맵의 주소 ::ffff:w.x.y.z 라고 하는 형식의 IPv6 주소는, IPv4 주소를 나타내는데 사용됩니다. 이 주소를 이용하면(자), 네이티브 프로그램에서는, IPv4 노드와 IPv6 노드의 양쪽 모두와 통신할 때에, 같은 주소 데이터 구조와 또 같은 소켓을 사용할 수 있습니다.

InetAddress 와 Inet6Address 에서는, 이것은 내부의 표현에 사용되어 기능상의 역할은 없습니다. Java 로부터 IPv4 맵 주소가 돌려주어질 것은 없습니다. 이러한 클래스는, 바이트 배열과 텍스트 표현의 양쪽 모두로, IPv4 맵 주소를 입력으로서 취할 수가 있습니다. 다만, 그 주소는 IPv4 주소에 변환됩니다.

IPv6 스코프 주소의 텍스트 표현

전술한 IPv6 주소의 텍스트 표현을 확장해, IPv6 스코프 주소를 지정할 수 있습니다. 기본적인 주소 지정 아키텍쳐(architecture)에 대한 이 확장에 대해서는,[draft-ietf-ipngwg-scoping-arch-04.txt] 를 참조해 주세요.  

링크 로컬 주소와 사이트 로컬 주소는 글로벌이 아닙니다. 이 때문에, 복수의 호스트가 동일한 송신지 주소를 가져, 동일한 송신원시스템상이 다른 인터페이스 경유로 그러한 호스트에게 도달할 수 있을 가능성이 있습니다. 이 경우, 그 송신원시스템은, 동일 스코프의 복수의 존에 접속되고 있습니다. 어떤 것이 목적의 송신지 존일까를 명확하게 하기 위해서, 존 식별자 (scope_id)를 IPv6 주소의 말미에 추가할 수가 있습니다.  

scope_id 의 일반적인 지정 형식은, 다음과 같습니다.  

IPv6-address%scope_id

IPv6-address 는, 전술의 리터럴 IPv6 주소입니다. scope_id 는 로컬 시스템상이 있는 인터페이스를 참조합니다. 이것을 지정하려면 다음의 2 개의 방법이 있습니다.  

  1. 수치 식별자로서 지정. 이것은, 시스템을 인식할 수 있는 특정의 인터페이스와 스코프를 식별하는 정의 정수가 아니면 안됩니다. 이 수치는 일반적으로, 시스템상의 관리툴을 사용하는 것으로 결정할 수 있습니다. 각 인터페이스는, 스코프 마다 1 개(살)씩, 복수의 값을 가질 수가 있습니다. 스코프가 미지정의 경우, 사용되는 디폴트 값는 제로입니다.
  2. 캐릭터 라인으로서 지정한다. 이것은, 대상이 되는 특정의 인터페이스에 대해서 NetworkInterface.getName() 로부터 반환된 캐릭터 라인과 정확하게 일치하지 않으면 안됩니다. Inet6Address 가 이 방법으로 작성되는 경우는, 그 객체를 생성할 경우에 관련하는 NetworkInterface 에 문의하는 것으로, 수치의 스코프 ID 가 결정됩니다.

또, NetworkInterface 클래스로부터 반환된 Inet6Address 인스턴스로부터 수치 scope_id 를 취득할 수도 있습니다. 이것을 사용하면, 시스템상에서 설정되어 있는 현재의 스코프 ID 를 확인할 수 있습니다.

도입된 버젼:
1.4
관련 항목:
직렬화 된 형식

메소드의 개요
 boolean equals (Object  obj)
          객체와 지정된 객체를 비교합니다.
 byte[] getAddress ()
          이 InetAddress 객체의 생의 IP 주소를 돌려줍니다.
static Inet6Address getByAddress (String  host, byte[] addr, int scope_id)
          InetAddress.getByAddress(String, byte[]) 멈춘 구와 같이 해 Inet6Address 를 작성합니다.
static Inet6Address getByAddress (String  host, byte[] addr, NetworkInterface  nif)
          InetAddress.getByAddress(String, byte[]) 멈춘 구와 같이 해 Inet6Address 를 작성합니다.
 String getHostAddress ()
          텍스트 표현의 IP 주소 캐릭터 라인을 돌려줍니다.
 NetworkInterface getScopedInterface ()
          이 인스턴스가 스코프 인터페이스를 사용해 작성되었을 경우, 그 스코프 인터페이스를 돌려줍니다.
 int getScopeId ()
          이 인스턴스를 인터페이스에 관련지을 수 있고 있는 경우는, 수치 스코프 ID 를 돌려줍니다.
 int hashCode ()
          이 IP 주소의 해시 코드를 돌려줍니다.
 boolean isAnyLocalAddress ()
          InetAddress 가 와일드 카드 주소인가 어떤가를 조사하는 유틸리티 루틴입니다.
 boolean isIPv4CompatibleAddress ()
          InetAddress 가 IPv4 호환의 IPv6 주소인가 어떤가를 조사하는 유틸리티 루틴입니다.
 boolean isLinkLocalAddress ()
          InetAddress 가 링크 로컬 주소인가 어떤가를 조사하는 유틸리티 루틴입니다.
 boolean isLoopbackAddress ()
          InetAddress 가 루프백 주소인가 어떤가를 조사하는 유틸리티 루틴입니다.
 boolean isMCGlobal ()
          멀티 캐스트 주소에 글로벌 스코프가 있을지 어떨지를 조사하는 유틸리티 루틴입니다.
 boolean isMCLinkLocal ()
          멀티 캐스트 주소에 링크 스코프가 있을지 어떨지를 조사하는 유틸리티 루틴입니다.
 boolean isMCNodeLocal ()
          멀티 캐스트 주소에 노드 스코프가 있을지 어떨지를 조사하는 유틸리티 루틴입니다.
 boolean isMCOrgLocal ()
          멀티 캐스트 주소에 조직 스코프가 있을지 어떨지를 조사하는 유틸리티 루틴입니다.
 boolean isMCSiteLocal ()
          멀티 캐스트 주소에 사이트 스코프가 있을지 어떨지를 조사하는 유틸리티 루틴입니다.
 boolean isMulticastAddress ()
          InetAddress 가 IP 멀티 캐스트 주소인가 어떤가를 조사하는 유틸리티 루틴입니다.
 boolean isSiteLocalAddress ()
          InetAddress 가 사이트 로컬 주소인가 어떤가를 조사하는 유틸리티 루틴입니다.
 
클래스 java.net. InetAddress 로부터 상속된 메소드
getAllByName , getByAddress , getByAddress , getByName , getCanonicalHostName , getHostName , getLocalHost , isReachable , isReachable , toString
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , finalize , getClass , notify , notifyAll , wait , wait , wait
 

메소드의 상세

getByAddress

public static Inet6Address  getByAddress(String  host,
                                        byte[] addr,
                                        NetworkInterface  nif)
                                 throws UnknownHostException 
InetAddress.getByAddress(String, byte[]) 멈춘 구와 같이 해 Inet6Address 를 작성합니다. 다만, 지정된 인터페이스의 addr 로 지정된 주소 타입에 대응하는 값에, IPv6 스코프 ID 가 설정되는 점은 다릅니다. 지정된 주소 타입 (링크 로컬이나 사이트 로컬등)에 할당할 수 있었던 수치 스코프 ID 가 지정된 인터페이스에 존재하지 않는 경우, 이 호출은 UnknownHostException 로 실패합니다. IPv6 스코프 주소에 대해서는,여기를 참조해 주세요.

파라미터:
host - 지정된 호스트
addr - 네트워크 바이트 순서의 IP 주소
nif - 이 주소를 관련지을 필요가 있는 인터페이스
반환값:
생의 IP 주소로부터 생성된 Inet6Address 객체
예외:
UnknownHostException - IP 주소의 길이가 올바르지 않은 경우, 또는 지정된 주소 타입에 할당할 수 있었던 수치 스코프 ID 가 인터페이스에 존재하지 않는 경우
도입된 버젼:
1.5

getByAddress

public static Inet6Address  getByAddress(String  host,
                                        byte[] addr,
                                        int scope_id)
                                 throws UnknownHostException 
InetAddress.getByAddress(String, byte[]) 멈춘 구와 같이 해 Inet6Address 를 작성합니다. 다만, IPv6 스코프 ID 가 지정된 수치로 설정되는 점은 다릅니다. 이 스코프 ID 에 대응하는 인터페이스가 시스템상에 존재할지 어떨지의 체크는 행해지지 않습니다. IPv6 스코프 주소에 대해서는,여기를 참조해 주세요.

파라미터:
host - 지정된 호스트
addr - 네트워크 바이트 순서의 IP 주소
scope_id - 이 주소에 대응하는 수치 스코프 ID
반환값:
생의 IP 주소로부터 생성된 Inet6Address 객체
예외:
UnknownHostException - IP 주소의 길이가 부정의 경우
도입된 버젼:
1.5

isMulticastAddress

public boolean isMulticastAddress()
InetAddress 가 IP 멀티 캐스트 주소인가 어떤가를 조사하는 유틸리티 루틴입니다. 주소의 선두가 11111111 이 되어 있으면, 그 주소는 멀티 캐스트 주소입니다.

오버라이드(override):
클래스 InetAddress 내의 isMulticastAddress
반환값:
InetAddress 가 IP 멀티 캐스트 주소인가 어떤가를 나타내는 boolean
도입된 버젼:
JDK1. 1

isAnyLocalAddress

public boolean isAnyLocalAddress()
InetAddress 가 와일드 카드 주소인가 어떤가를 조사하는 유틸리티 루틴입니다.

오버라이드(override):
클래스 InetAddress 내의 isAnyLocalAddress
반환값:
InetAddress 가 와일드 카드 주소인가 어떤가를 나타내는 boolean
도입된 버젼:
1.4

isLoopbackAddress

public boolean isLoopbackAddress()
InetAddress 가 루프백 주소인가 어떤가를 조사하는 유틸리티 루틴입니다.

오버라이드(override):
클래스 InetAddress 내의 isLoopbackAddress
반환값:
InetAddress 가 루프백 주소인가 어떤가를 나타내는 boolean. 루프백 주소가 아닌 경우는 false
도입된 버젼:
1.4

isLinkLocalAddress

public boolean isLinkLocalAddress()
InetAddress 가 링크 로컬 주소인가 어떤가를 조사하는 유틸리티 루틴입니다.

오버라이드(override):
클래스 InetAddress 내의 isLinkLocalAddress
반환값:
InetAddress 가 링크 로컬 주소인가 어떤가를 나타내는 boolean. 주소가 링크 로컬 uni-cast 주소가 아닌 경우는 false
도입된 버젼:
1.4

isSiteLocalAddress

public boolean isSiteLocalAddress()
InetAddress 가 사이트 로컬 주소인가 어떤가를 조사하는 유틸리티 루틴입니다.

오버라이드(override):
클래스 InetAddress 내의 isSiteLocalAddress
반환값:
InetAddress 가 사이트 로컬 주소인가 어떤가를 나타내는 boolean. 주소가 사이트 로컬 uni-cast 주소가 아닌 경우는 false
도입된 버젼:
1.4

isMCGlobal

public boolean isMCGlobal()
멀티 캐스트 주소에 글로벌 스코프가 있을지 어떨지를 조사하는 유틸리티 루틴입니다.

오버라이드(override):
클래스 InetAddress 내의 isMCGlobal
반환값:
주소가 글로벌 스코프의 멀티 캐스트 주소인가 어떤가를 나타내는 boolean. 그것이 글로벌 스코프의 주소가 아닌가 멀티 캐스트 주소가 아닌 경우는 false
도입된 버젼:
1.4

isMCNodeLocal

public boolean isMCNodeLocal()
멀티 캐스트 주소에 노드 스코프가 있을지 어떨지를 조사하는 유틸리티 루틴입니다.

오버라이드(override):
클래스 InetAddress 내의 isMCNodeLocal
반환값:
주소가 노드 로컬 스코프의 멀티 캐스트 주소인가 어떤가를 나타내는 boolean. 그것이 노드 로컬 스코프의 주소가 아닌가 멀티 캐스트 주소가 아닌 경우는 false
도입된 버젼:
1.4

isMCLinkLocal

public boolean isMCLinkLocal()
멀티 캐스트 주소에 링크 스코프가 있을지 어떨지를 조사하는 유틸리티 루틴입니다.

오버라이드(override):
클래스 InetAddress 내의 isMCLinkLocal
반환값:
주소가 링크 로컬 스코프의 멀티 캐스트 주소인가 어떤가를 나타내는 boolean. 그것이 링크 로컬 스코프의 주소가 아닌가 멀티 캐스트 주소가 아닌 경우는 false
도입된 버젼:
1.4

isMCSiteLocal

public boolean isMCSiteLocal()
멀티 캐스트 주소에 사이트 스코프가 있을지 어떨지를 조사하는 유틸리티 루틴입니다.

오버라이드(override):
클래스 InetAddress 내의 isMCSiteLocal
반환값:
주소가 사이트 로컬 스코프의 멀티 캐스트 주소인가 어떤가를 나타내는 boolean. 그것이 사이트 로컬 스코프의 주소가 아닌가 멀티 캐스트 주소가 아닌 경우는 false
도입된 버젼:
1.4

isMCOrgLocal

public boolean isMCOrgLocal()
멀티 캐스트 주소에 조직 스코프가 있을지 어떨지를 조사하는 유틸리티 루틴입니다.

오버라이드(override):
클래스 InetAddress 내의 isMCOrgLocal
반환값:
주소가 조직 로컬 스코프의 멀티 캐스트 주소인가 어떤가를 나타내는 boolean. 그것이 조직 로컬 스코프의 주소가 아닌가 멀티 캐스트 주소가 아닌 경우는 false
도입된 버젼:
1.4

getAddress

public byte[] getAddress()
InetAddress 객체의 생의 IP 주소를 돌려줍니다. 그 결과는 네트워크 바이트 순서가 됩니다. 주소의 최상정도 순서 바이트는 getAddress()[0] 내에 존재합니다.

오버라이드(override):
클래스 InetAddress 내의 getAddress
반환값:
이 객체의 IP 주소

getScopeId

public int getScopeId()
이 인스턴스를 인터페이스에 관련지을 수 있고 있는 경우는, 수치 스코프 ID 를 돌려줍니다. 스코프 ID 가 설정되어 있지 않은 경우, 반환값은 제로가 됩니다.

반환값:
스코프 ID. 설정되어 있지 않은 경우는 제로
도입된 버젼:
1.5

getScopedInterface

public NetworkInterface  getScopedInterface()
이 인스턴스가 스코프 인터페이스를 사용해 작성되었을 경우, 그 스코프 인터페이스를 돌려줍니다.

반환값:
스코프 인터페이스. 설정되어 있지 않은 경우는 null
도입된 버젼:
1.5

getHostAddress

public String  getHostAddress()
텍스트 표현의 IP 주소 캐릭터 라인을 돌려줍니다. 스코프 식별자를 지정해 인스턴스가 작성되었을 경우, 그 스코프 ID 가 IP 주소의 말미에 추가됩니다. 그 때, 스코프 ID 의 선두에 「%」(퍼센트) 문자를 붙일 수 있습니다. 이것은 수치와 캐릭터 라인의 어느 쪽인가에 됩니다만, 어느 쪽이 될까는, 인스턴스의 작성시에 어느 쪽이 사용되었는지를 따라 정해집니다.

오버라이드(override):
클래스 InetAddress 내의 getHostAddress
반환값:
IP 주소의 캐릭터 라인 형식

hashCode

public int hashCode()
이 IP 주소의 해시 코드를 돌려줍니다.

오버라이드(override):
클래스 InetAddress 내의 hashCode
반환값:
이 IP 주소의 해시 코드값
관련 항목:
Object.equals(java.lang.Object) , Hashtable

equals

public boolean equals(Object  obj)
객체와 지정된 객체를 비교합니다. 인수가 null 는 아니고, 그 인수가 이 객체와 같은 IP 주소를 나타내는 경우에만, 결과가 true 가 됩니다.  

getAddress 에 의해 반환되는 바이트 배열의 길이가 같고, 바이트 배열의 각 요소가 같은 경우, 2 개의 InetAddress 의 인스턴스는 같은 IP 주소를 나타내고 있습니다.

오버라이드(override):
클래스 InetAddress 내의 equals
파라미터:
obj - 비교 대상의 객체
반환값:
객체가 동일한 경우는 true, 그렇지 않은 경우는 false
관련 항목:
InetAddress.getAddress()

isIPv4CompatibleAddress

public boolean isIPv4CompatibleAddress()
InetAddress 가 IPv4 호환의 IPv6 주소인가 어떤가를 조사하는 유틸리티 루틴입니다.

반환값:
InetAddress 가 IPv4 호환 IPv6 주소인가 어떤가를 나타내는 boolean. 주소가 IPv4 주소인 경우는 false
도입된 버젼:
1.4

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.