nl::Inet::IPAddress

#include <src/inet/IPAddress.h>

인터넷 프로토콜 주소

요약

Nest Inet 레이어는 이 클래스의 객체를 사용하여 프로토콜 버전과 관계없이 인터넷 프로토콜 주소를 나타냅니다.

공개 속성

Addr[4]
uint32_t
IP 주소를 포함하는 불투명 단어 배열입니다 (프로토콜 버전과 무관함).

공개 정적 속성

Any
지정되지 않은 구별된 IP 주소 객체입니다.

공개 함수

GlobalId(void) const
uint64_t
IPv6 ULA 주소의 16비트 글로벌 네트워크 식별자를 추출합니다.
InterfaceId(void) const
uint64_t
IPv6 ULA 주소의 IID를 추출합니다.
IsIPv4(void) const
bool
주소가 IPv4와 호환되는지 테스트합니다.
IsIPv4Broadcast(void) const
bool
주소가 IPv4 브로드캐스트인지 테스트합니다.
IsIPv4Multicast(void) const
bool
주소가 IPv4 멀티캐스트인지 테스트합니다.
IsIPv6(void) const
bool
주소가 IPv6와 호환되는지 테스트합니다.
IsIPv6GlobalUnicast(void) const
bool
주소가 IPv6 전역 유니캐스트 주소인지 테스트합니다.
IsIPv6LinkLocal(void) const
bool
주소가 IPv6 링크-로컬 주소 (LL)인지 테스트합니다.
IsIPv6Multicast(void) const
bool
주소가 IPv6 멀티캐스트인지 테스트합니다.
IsIPv6ULA(void) const
bool
주소가 IPv6 고유 로컬 주소 (ULA)인지 테스트합니다.
IsMulticast(void) const
bool
주소가 IPv4 또는 IPv6 멀티캐스트인지 테스트합니다.
Subnet(void) const
uint16_t
IPv6 ULA 주소의 16비트 서브넷 식별자를 추출합니다.
ToIPv4(void) const
IPv4 주소를 플랫폼 데이터 구조로 추출합니다.
ToIPv4(void) const
struct in_addr
ToIPv6(void) const
ip6_addr_t
IPv6 주소를 플랫폼 데이터 구조로 추출합니다.
ToIPv6(void) const
struct in6_addr
ToString(char *buf, uint32_t bufSize) const
char *
기존 텍스트 프레젠테이션 형식으로 IP 주소를 내보냅니다.
Type(void) const
IPAddressType
IP 주소 유형을 추출합니다.
WriteAddress(uint8_t *& p) const
void
표준 네트워크 표현으로 IP 주소를 내보냅니다.
operator!=(const IPAddress & other) const
bool
이 IP 주소를 다른 IP 주소와 비교합니다.
operator=(const IPAddress & other)
기존 할당 연산자입니다.
operator==(const IPAddress & other) const
bool
이 IP 주소를 다른 IP 주소와 비교하면 동일한지 확인합니다.

공개 정적 함수

FromIPv4(const ip4_addr_t & addr)
FromIPv4(const struct in_addr & addr)
플랫폼 데이터 구조에서 IPv4 주소를 삽입합니다.
FromIPv6(const ip6_addr_t & addr)
FromIPv6(const struct in6_addr & addr)
플랫폼 데이터 구조에서 IPv6 주소를 삽입합니다.
FromSockAddr(const struct sockaddr & sockaddr)
POSIX struct sockaddr&에서 IPv6 주소를 삽입합니다.
FromString(const char *str, IPAddress & output)
bool
기존 프레젠테이션 텍스트에서 IP 주소를 스캔합니다.
FromString(const char *str, size_t strLen, IPAddress & output)
bool
기존 프레젠테이션 텍스트에서 IP 주소를 스캔합니다.
MakeIPv4Broadcast(void)
IPv4 브로드캐스트 주소를 구성합니다.
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
부분에서 IPv6 멀티캐스트 주소를 구성합니다.
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, uint32_t aGroupId)
부분에서 IPv6 멀티캐스트 주소를 구성합니다.
MakeIPv6PrefixMulticast(uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId)
일시적인 프리픽스 IPv6 멀티캐스트 주소를 해당 부분에서 생성합니다.
MakeIPv6TransientMulticast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
임시 IPv6 멀티캐스트 주소를 해당 부분으로 구성합니다.
MakeIPv6WellKnownMulticast(uint8_t aScope, uint32_t aGroupId)
여러 부분으로 잘 알려진 IPv6 멀티캐스트 주소를 구성합니다.
MakeLLA(uint64_t interfaceId)
해당 IID에서 IPv6 링크-로컬 주소 (LL)를 구성합니다.
MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
부분에서 IPv6 고유 로컬 주소 (ULA)를 구성합니다.
ReadAddress(const uint8_t *& p, IPAddress & output)
void
표준 네트워크 표현으로 IP 주소를 내보냅니다.

공개 속성

Addr

uint32_t Addr[4]

IP 주소를 포함하는 불투명 단어 배열입니다 (프로토콜 버전과 무관함).

IPv6 주소는 모든 128비트를 부호 없는 정수 4개의 32비트 네트워크 바이트로 분할하여 사용합니다. IPv4 주소는 V4COMPAT입니다. 즉, 처음 세 단어는 0이고 네 번째 단어는 네트워크 바이트 순서의 IPv4 주소를 포함합니다.

공개 정적 속성

모두

IPAddress Any

지정되지 않은 구별된 IP 주소 객체입니다.

이 객체는 등가 비교를 위한 상수로 사용됩니다. Nest Inet 레이어 사용자는 이를 수정해서는 안 됩니다.

공개 함수

GlobalId

uint64_t GlobalId(
  void
) const 

IPv6 ULA 주소의 16비트 글로벌 네트워크 식별자를 추출합니다.

이 메서드를 IPv6 고유 로컬 주소(ULA)와 함께 사용하여 글로벌 네트워크 식별자(고유한 ULA 네트워크 접두사 바로 뒤에 오는 40비트(즉, fd00::/8))를 추출합니다. 다시 말해, 글로벌 네트워크 식별자는 주소의 두 번째 바이트에서 6번째 바이트까지 5바이트에 있습니다.

세부정보
반환
40비트 글로벌 네트워크 식별자 또는 IP 주소가 IPv6 고유 로컬 주소가 아닌 경우 0입니다.

InterfaceId

uint64_t InterfaceId(
  void
) const 

IPv6 ULA 주소의 IID를 추출합니다.

이 메서드를 IPv6 고유 로컬 주소 (ULA)와 함께 사용하여 주소의 최하위 64비트인 식별자 식별자 (IID)를 추출합니다.

세부정보
반환
64비트 인터페이스 식별자 또는 IP 주소가 IPv6 고유 로컬 주소가 아닌 경우 0입니다.

IsIPv4

bool IsIPv4(
  void
) const 

주소가 IPv4와 호환되는지 테스트합니다.

이 방법을 사용하여 주소가 IPv4 주소 계열에 속하는지 확인합니다. 지정되지 않은 주소는 IPv4 주소가 아닙니다.

세부정보
반환 값
true
주소가 IPv4이고 지정되지 않은 주소가 아닙니다.
false
주소가 IPv6이거나 지정되지 않은 주소입니다.

IsIPv4Broadcast

bool IsIPv4Broadcast(
  void
) const 

주소가 IPv4 브로드캐스트인지 테스트합니다.

이 메서드를 사용하여 주소가 특수 목적 IPv4 브로드캐스트 주소인지 확인합니다.

세부정보
반환 값
true
주소는 IPv4 브로드캐스트
false
그렇지 않은 경우 다음 단계를 따릅니다.

IsIPv4Multicast

bool IsIPv4Multicast(
  void
) const 

주소가 IPv4 멀티캐스트인지 테스트합니다.

이 메서드를 사용하여 주소가 IPv4 멀티캐스트 주소인지 확인합니다.

세부정보
반환 값
true
주소는 IPv4 멀티캐스트입니다.
false
그렇지 않은 경우 다음 단계를 따릅니다.

IsIPv6

bool IsIPv6(
  void
) const 

주소가 IPv6와 호환되는지 테스트합니다.

이 방법을 사용하여 주소가 IPv6 주소 계열에 속하는지 확인합니다. 지정되지 않은 주소는 IPv6 주소가 아닙니다.

세부정보
반환 값
true
주소가 IPv6이고 지정되지 않은 주소가 아닙니다.
false
주소가 IPv4 또는 지정되지 않은 주소입니다.

IsIPv6GlobalUnicast

bool IsIPv6GlobalUnicast(
  void
) const 

주소가 IPv6 전역 유니캐스트 주소인지 테스트합니다.

이 방법을 사용하여 주소가 IPv6 주소 계열에 속하고 전역 유니캐스트 주소 접두어를 포함하는지 확인합니다.

세부정보
반환 값
true
주소가 IPv6 전역 유니캐스트입니다.
false
그렇지 않은 경우 다음 단계를 따릅니다.

IsIPv6LinkLocal

bool IsIPv6LinkLocal(
  void
) const 

주소가 IPv6 링크-로컬 주소 (LL)인지 테스트합니다.

이 메서드를 사용하여 주소가 IPv6 주소 계열에 속하고 예약된 IPv6 링크-로컬 주소 프리픽스를 포함하는지 확인합니다.

세부정보
반환 값
true
주소가 IPv6 링크-로컬입니다.
false
그렇지 않은 경우 다음 단계를 따릅니다.

IsIPv6Multicast

bool IsIPv6Multicast(
  void
) const 

주소가 IPv6 멀티캐스트인지 테스트합니다.

이 메서드를 사용하여 주소가 IPv6 주소 계열에 속하고 예약된 IPv6 멀티캐스트 주소 접두사를 포함하는지 확인합니다.

세부정보
반환 값
true
주소는 IPv6 멀티캐스트입니다.
false
그렇지 않은 경우 다음 단계를 따릅니다.

ISIPv6ULA

bool IsIPv6ULA(
  void
) const 

주소가 IPv6 고유 로컬 주소 (ULA)인지 테스트합니다.

이 메서드를 사용하여 주소가 IPv6 주소 계열에 속하고 예약된 IPv6 고유 로컬 주소 접두사를 포함하는지 확인합니다.

세부정보
반환 값
true
주소가 IPv6 고유 로컬입니다.
false
그렇지 않은 경우 다음 단계를 따릅니다.

IsMulticast

bool IsMulticast(
  void
) const 

주소가 IPv4 또는 IPv6 멀티캐스트인지 테스트합니다.

이 메서드를 사용하여 주소가 IPv4 또는 IPv6 주소 계열에 속하고 예약된 IPv4 또는 IPv6 멀티캐스트 주소 접두사가 있는지 확인합니다.

세부정보
반환 값
true
주소가 IPv4 또는 IPv6 멀티캐스트입니다.
false
그렇지 않은 경우 다음 단계를 따릅니다.

서브넷

uint16_t Subnet(
  void
) const 

IPv6 ULA 주소의 16비트 서브넷 식별자를 추출합니다.

이 방법을 IPv6 고유 로컬 주소 (ULA)와 함께 사용하여 네트워크 접두사의 최하위 16비트인 서브넷 식별자를 추출합니다. 네트워크 접두어는 주소의 최상위 64비트입니다. 즉, 서브넷 식별자는 16바이트 주소의 7번째 및 8번째 바이트에 있습니다.

세부정보
반환
16비트 서브넷 식별자 또는 IP 주소가 IPv6 고유 로컬 주소가 아닌 경우 0입니다.

ToIPv4

ip4_addr_t ToIPv4(
  void
) const 

IPv4 주소를 플랫폼 데이터 구조로 추출합니다.

가능한 경우 ToIPv4() const를 사용하여 콘텐츠를 IPv4 주소로 추출합니다. IPv6 주소와 지정되지 않은 주소는 0.0.0.0로 추출됩니다.

결과는 struct in_addr (POSIX의 경우) 또는 ip4_addr_t (LwIP의 경우) 유형입니다.

세부정보
반환
캡슐화된 IPv4 주소 또는 0.0.0.0(주소가 지정되지 않거나 IPv4 주소가 아닌 경우)

ToIPv4

struct in_addr ToIPv4(
  void
) const 

ToIPv6

ip6_addr_t ToIPv6(
  void
) const 

IPv6 주소를 플랫폼 데이터 구조로 추출합니다.

가능한 경우 ToIPv6() const를 사용하여 콘텐츠를 IPv6 주소로 추출합니다. IPv4 주소와 지정되지 않은 주소는 [::]로 추출됩니다.

결과는 struct in6_addr (POSIX의 경우) 또는 ip6_addr_t (LwIP의 경우) 유형입니다.

세부정보
반환
캡슐화된 IPv4 주소 또는 [::] if the address is either unspecified or not an IPv4 address.

ToIPv6

struct in6_addr ToIPv6(
  void
) const 

ToString

char * ToString(
  char *buf,
  uint32_t bufSize
) const 

기존 텍스트 프레젠테이션 형식으로 IP 주소를 내보냅니다.

ToString(char *buf, uint32_t bufSize) const를 사용하여 IP 주소의 기존 텍스트 표시 형식을 buf에 있는 메모리에 쓰고 NUL 종료 문자를 포함하여 bufSize바이트까지 확장합니다.

세부정보
매개변수
[out] buf
내보낸 텍스트의 주소입니다.
[in] bufSize
내보낸 텍스트를 위한 버퍼의 크기입니다.

참고: 일부 플랫폼에서는 RFC 5952를 준수하지 않습니다. 구체적으로, 섹션 4.2에 따라 제로 압축이 적용되지 않을 수도 있습니다.

세부정보
반환
형식 오류가 없는 경우 인수 buf, 그렇지 않은 경우 0

유형

IPAddressType Type(
  void
) const 

IP 주소 유형을 추출합니다.

이 메서드를 사용하면 열거된 유형인 IPAddressType의 값을 반환하여 IP 주소 유형을 나타낼 수 있습니다.

세부정보
반환 값
kIPAddressType_IPv4
주소는 IPv4입니다.
kIPAddressType_IPv6
주소는 IPv6입니다.
kIPAddressType_Any
주소가 지정되지 않은 주소입니다.

WriteAddress

void WriteAddress(
  uint8_t *& p
) const 

표준 네트워크 표현으로 IP 주소를 내보냅니다.

WriteAddress(uint8_t *&p)를 사용하여 IPv6 주소에 RFC 4291에서 정의된 바이너리 형식으로 IP 주소를 인코딩합니다. IPv4 주소는 섹션 2.5.5.1 'IPv4 호환 IPv6 주소' (V4COMPAT)

세부정보
매개변수
[in,out] p
쓰기에 사용할 커서에 대한 참조입니다.

operator!=

bool operator!=(
  const IPAddress & other
) const 

이 IP 주소를 다른 IP 주소와 비교합니다.

세부정보
매개변수
[in] other
비교할 주소입니다.
반환 값
true
other와 동일한 경우
false
그렇지 않은 경우 다음 단계를 따릅니다.

operator=

IPAddress & operator=(
  const IPAddress & other
)

기존 할당 연산자입니다.

세부정보
매개변수
[in] other
복사할 주소입니다.
반환
이 객체에 대한 참조입니다.

연산자==

bool operator==(
  const IPAddress & other
) const 

이 IP 주소를 다른 IP 주소와 비교하면 동일한지 확인합니다.

세부정보
매개변수
[in] other
비교할 주소입니다.
반환 값
true
other와 동일한 경우
false
그렇지 않은 경우 다음 단계를 따릅니다.

공개 정적 함수

FromIPv4

IPAddress FromIPv4(
  const ip4_addr_t & addr
)

이는 오버로드된 멤버 함수로, 편의를 위해 제공됩니다. 위의 함수와 허용되는 인수만 다릅니다.

FromIPv4

IPAddress FromIPv4(
  const struct in_addr & addr
)

플랫폼 데이터 구조에서 IPv4 주소를 삽입합니다.

FromIPv4(const ip4_addr_t &addr)를 사용하여 addr를 IPv4 주소로 삽입합니다.

인수 addrconst struct in_addr& (POSIX의 경우) 또는 const ip4_addr_t& (LwIP의 경우) 유형 중 하나입니다.

세부정보
반환
생성된 IP 주소입니다.

FromIPv6

IPAddress FromIPv6(
  const ip6_addr_t & addr
)

이는 오버로드된 멤버 함수로, 편의를 위해 제공됩니다. 위의 함수와 허용되는 인수만 다릅니다.

FromIPv6

IPAddress FromIPv6(
  const struct in6_addr & addr
)

플랫폼 데이터 구조에서 IPv6 주소를 삽입합니다.

FromIPv6(const ip6_addr_t &addr)를 사용하여 addr를 IPv6 주소로 삽입합니다.

인수 addrconst struct in6_addr& (POSIX의 경우) 또는 const ip6_addr_t& (LwIP의 경우) 유형 중 하나입니다.

세부정보
반환
생성된 IP 주소입니다.

FromSockAddr

IPAddress FromSockAddr(
  const struct sockaddr & sockaddr
)

POSIX struct sockaddr&에서 IPv6 주소를 삽입합니다.

FromSockAddr(const struct sockaddr& sockaddr)를 사용하여 sockaddr.sa_addr를 IPv6 주소로 삽입합니다.

세부정보
반환
생성된 IP 주소입니다.

FromString

bool FromString(
  const char *str,
  IPAddress & output
)

기존 프레젠테이션 텍스트에서 IP 주소를 스캔합니다.

FromString(const char *str, IPAddress& output)str에 있는 기존 텍스트 표시를 스캔하여 IP 주소를 덮어씁니다.

세부정보
매개변수
[in] str
내보낸 텍스트의 주소입니다.
[out] output
스캔된 주소로 설정할 객체입니다.

세부정보
반환 값
true
프레젠테이션 형식이 올바릅니다.
false
그렇지 않은 경우 다음 단계를 따릅니다.

FromString

bool FromString(
  const char *str,
  size_t strLen,
  IPAddress & output
)

기존 프레젠테이션 텍스트에서 IP 주소를 스캔합니다.

FromString(const char *str, size_t strLen, IPAddress& output)str에 있는 기존 텍스트 표시를 스캔하여 IP 주소를 덮어씁니다.

세부정보
매개변수
[in] str
스캔할 텍스트를 가리키는 포인터입니다.
[in] strLen
스캔할 텍스트의 길이입니다.
[out] output
스캔된 주소로 설정할 객체입니다.

세부정보
반환 값
true
프레젠테이션 형식이 올바릅니다.
false
그렇지 않은 경우 다음 단계를 따릅니다.

MakeIPv4Broadcast

IPAddress MakeIPv4Broadcast(
  void
)

IPv4 브로드캐스트 주소를 구성합니다.

세부정보
반환
생성된 IP 주소입니다.

MakeIPv6Multicast

IPAddress MakeIPv6Multicast(
  uint8_t aFlags,
  uint8_t aScope,
  const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES]
)

부분에서 IPv6 멀티캐스트 주소를 구성합니다.

MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint8_t groupId[14])를 사용하여 라우팅 범위 scope 및 그룹 식별자 옥텟 groupIdflags로 IPv6 멀티캐스트 주소를 구성합니다.

세부정보
반환
생성된 IP 주소입니다.

MakeIPv6Multicast

IPAddress MakeIPv6Multicast(
  uint8_t aFlags,
  uint8_t aScope,
  uint32_t aGroupId
)

부분에서 IPv6 멀티캐스트 주소를 구성합니다.

MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId)를 사용하여 라우팅 범위 scope 및 그룹 식별자 groupIdflags로 IPv6 멀티캐스트 주소를 구성합니다.

세부정보
반환
생성된 IP 주소입니다.

MakeIPv6PrefixMulticast

IPAddress MakeIPv6PrefixMulticast(
  uint8_t aScope,
  uint8_t aPrefixLength,
  const uint64_t & aPrefix,
  uint32_t aGroupId
)

일시적인 프리픽스 IPv6 멀티캐스트 주소를 해당 부분에서 생성합니다.

MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId)를 사용하여 라우팅 범위 scope 및 그룹 식별자 옥텟 groupId에 사용되는 일시적인 접두사 IPv6 멀티캐스트 주소를 구성합니다. 길이 prefixlen비트의 접두사 prefix로 한정됩니다.

세부정보
반환
생성된 IP 주소입니다.

MakeIPv6TransientMulticast

IPAddress MakeIPv6TransientMulticast(
  uint8_t aFlags,
  uint8_t aScope,
  const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES]
)

임시 IPv6 멀티캐스트 주소를 해당 부분으로 구성합니다.

MakeIPv6TransientMulticast(uint8_t flags, uint8_t scope, uint8_t groupId[14])를 사용하여 라우팅 범위 scope 및 그룹 식별자 옥텟 groupIdflags로 임시 IPv6 멀티캐스트 주소를 구성합니다.

세부정보
반환
생성된 IP 주소입니다.

MakeIPv6WellKnownMulticast

IPAddress MakeIPv6WellKnownMulticast(
  uint8_t aScope,
  uint32_t aGroupId
)

여러 부분으로 잘 알려진 IPv6 멀티캐스트 주소를 구성합니다.

MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId)를 사용하여 라우팅 범위 scope 및 그룹 식별자 groupId의 IPv6 멀티캐스트 주소를 구성합니다.

세부정보
반환
생성된 IP 주소입니다.

MakeLLA

IPAddress MakeLLA(
  uint64_t interfaceId
)

해당 IID에서 IPv6 링크-로컬 주소 (LL)를 구성합니다.

MakeLLA(uint64_t interfaceId)를 사용하여 인터페이스 식별자 interfaceId로 IPv6 링크-로컬 주소 (LL)를 구성합니다.

세부정보
반환
생성된 IP 주소입니다.

MakeULA

IPAddress MakeULA(
  uint64_t globalId,
  uint16_t subnet,
  uint64_t interfaceId
)

부분에서 IPv6 고유 로컬 주소 (ULA)를 구성합니다.

MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)를 사용하여 전역 네트워크 식별자 globalId, 서브넷 식별자 subnet, 인터페이스 식별자 (IID) interfaceId로 고유 로컬 주소 (ULA)를 구성합니다.

세부정보
반환
생성된 IP 주소입니다.

ReadAddress

void ReadAddress(
  const uint8_t *& p,
  IPAddress & output
)

표준 네트워크 표현으로 IP 주소를 내보냅니다.

ReadAddress(uint8_t *&p, IPAddress &output)를 사용하여 p의 IP 주소를 output 객체로 디코딩합니다.

세부정보
매개변수
[in,out] p
읽는 데 사용할 커서에 대한 참조입니다.
[out] output
디코딩된 IP 주소를 수신할 객체입니다.