|
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
boolean
public boolean isAnyLocalAddress()
InetAddress
내의 isAnyLocalAddress
boolean
public 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
,
그렇지 않은 경우는 false
InetAddress.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 도 참조해 주세요.