|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
| 개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 | |||||||||
java.lang.Objectjava.net.InetAddress
java.net.Inet6Address
public final class Inet6Address
이 클래스는, 인터넷 프로토콜 버젼 6 (IPv6) 주소를 나타냅니다. 「RFC 2373: IP Version 6 Addressing Architecture」로 정의되고 있습니다.
추천의 형식은 x:x:x:x:x:x:x:x 입니다. 여기서, 「x」는, 주소를 8 개의 16 비트 부분으로 나누어 16 진수로 나타낸 값입니다. 이것은 완전한 형식입니다. 다음에 예를 나타냅니다.
1080:0:0:0:8:800:200C:417A
각 필드내의 선두 부분의 제로는 기술할 필요가 없는 점에 주의해 주세요. 다만, 다음에 설명하는 경우를 제외해, 각 필드에는 적어도 1 개의 수치가 필요합니다.
특정 스타일의 IPv6 주소를 할당하기 위한 몇개의 방식이 원인이 되어, 주소내에 제로 비트의 긴 열이 포함되는 일이 자주 있습니다. 제로 비트를 포함한 주소를 기술하기 쉽게하기 위해(때문에), 제로를 압축하는 특수한 구문을 이용할 수 있습니다. 「::」의 사용은, 제로만으로부터 완성되는 16 비트의 그룹이 복수 존재하는 것을 나타냅니다. 「::」은, 1 개의 주소내에서 1 회 밖에 사용할 수 없습니다. 또, 「::」을 사용하면, 주소내의 선두의 제로 또는 말미의 제로, 혹은 그 양쪽 모두를 압축할 수도 있습니다. 다음에 예를 나타냅니다.
1080::8:800:200C:417A
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 가 완전한 형식을 돌려주는 것은, 다른 텍스트 데이터와 조합해 사용하는 경우에도, 애매하게 안 되기 때문입니다.
IPv4 맵의 주소 ::ffff:w.x.y.z 라고 하는 형식의 IPv6 주소는, IPv4 주소를 나타내는데 사용됩니다. 이 주소를 이용하면(자), 네이티브 프로그램에서는, IPv4 노드와 IPv6 노드의 양쪽 모두와 통신할 때에, 같은 주소 데이터 구조와 또 같은 소켓을 사용할 수 있습니다. InetAddress 와 Inet6Address 에서는, 이것은 내부의 표현에 사용되어 기능상의 역할은 없습니다. Java 로부터 IPv4 맵 주소가 돌려주어질 것은 없습니다. 이러한 클래스는, 바이트 배열과 텍스트 표현의 양쪽 모두로, IPv4 맵 주소를 입력으로서 취할 수가 있습니다. 다만, 그 주소는 IPv4 주소에 변환됩니다.
전술한 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 개의 방법이 있습니다.
NetworkInterface.getName() 로부터 반환된 캐릭터 라인과 정확하게 일치하지 않으면 안됩니다. Inet6Address 가 이 방법으로 작성되는 경우는, 그 객체를 생성할 경우에 관련하는 NetworkInterface 에 문의하는 것으로, 수치의 스코프 ID 가 결정됩니다. 또, NetworkInterface 클래스로부터 반환된 Inet6Address 인스턴스로부터 수치 scope_id 를 취득할 수도 있습니다. 이것을 사용하면, 시스템상에서 설정되어 있는 현재의 스코프 ID 를 확인할 수 있습니다.
| 메소드의 개요 | |
|---|---|
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 |
| 메소드의 상세 |
|---|
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 - 이 주소를 관련지을 필요가 있는 인터페이스
UnknownHostException - IP 주소의 길이가 올바르지 않은 경우, 또는 지정된 주소 타입에 할당할 수 있었던 수치 스코프 ID 가 인터페이스에 존재하지 않는 경우
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
UnknownHostException - IP 주소의 길이가 부정의 경우public boolean isMulticastAddress()
InetAddress 내의 isMulticastAddress booleanpublic boolean isAnyLocalAddress()
InetAddress 내의 isAnyLocalAddress booleanpublic boolean isLoopbackAddress()
InetAddress 내의 isLoopbackAddress boolean. 루프백 주소가 아닌 경우는 falsepublic boolean isLinkLocalAddress()
InetAddress 내의 isLinkLocalAddress boolean. 주소가 링크 로컬 uni-cast 주소가 아닌 경우는 falsepublic boolean isSiteLocalAddress()
InetAddress 내의 isSiteLocalAddress boolean. 주소가 사이트 로컬 uni-cast 주소가 아닌 경우는 falsepublic boolean isMCGlobal()
InetAddress 내의 isMCGlobal boolean. 그것이 글로벌 스코프의 주소가 아닌가 멀티 캐스트 주소가 아닌 경우는 falsepublic boolean isMCNodeLocal()
InetAddress 내의 isMCNodeLocal boolean. 그것이 노드 로컬 스코프의 주소가 아닌가 멀티 캐스트 주소가 아닌 경우는 falsepublic boolean isMCLinkLocal()
InetAddress 내의 isMCLinkLocal boolean. 그것이 링크 로컬 스코프의 주소가 아닌가 멀티 캐스트 주소가 아닌 경우는 falsepublic boolean isMCSiteLocal()
InetAddress 내의 isMCSiteLocal boolean. 그것이 사이트 로컬 스코프의 주소가 아닌가 멀티 캐스트 주소가 아닌 경우는 falsepublic boolean isMCOrgLocal()
InetAddress 내의 isMCOrgLocal boolean. 그것이 조직 로컬 스코프의 주소가 아닌가 멀티 캐스트 주소가 아닌 경우는 falsepublic byte[] getAddress()
InetAddress 객체의 생의 IP 주소를 돌려줍니다. 그 결과는 네트워크 바이트 순서가 됩니다. 주소의 최상정도 순서 바이트는 getAddress()[0] 내에 존재합니다.
InetAddress 내의 getAddress public int getScopeId()
public NetworkInterface getScopedInterface()
public String getHostAddress()
InetAddress 내의 getHostAddress public int hashCode()
InetAddress 내의 hashCode Object.equals(java.lang.Object) ,
Hashtable public boolean equals(Object obj)
null 는 아니고, 그 인수가 이 객체와 같은 IP 주소를 나타내는 경우에만, 결과가 true 가 됩니다.
getAddress 에 의해 반환되는 바이트 배열의 길이가 같고, 바이트 배열의 각 요소가 같은 경우, 2 개의 InetAddress 의 인스턴스는 같은 IP 주소를 나타내고 있습니다.
InetAddress 내의 equals obj - 비교 대상의 객체
true,
그렇지 않은 경우는 falseInetAddress.getAddress() public boolean isIPv4CompatibleAddress()
boolean. 주소가 IPv4 주소인 경우는 false
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
| 개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.