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 주소를 내보냅니다.

공개 속성

주소

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 주소 또는 주소가 지정되지 않았거나 IPv4 주소가 아닌 경우 0.0.0.0입니다.

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)를 사용하여 IP 주소를 IPv6 주소에 RFC 4291에서 정의한 바이너리 형식으로 인코딩합니다. IPv4 주소는 2.5.5.1 'IPv4 호환 IPv6 주소' (V4COMPAT) 섹션에 따라 인코딩됩니다.

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

연산자!=

bool operator!=(
  const IPAddress & other
) const 

동일성을 위해 이 IP 주소를 다른 IP 주소와 비교합니다.

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

연산자=

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 주소로 삽입합니다.

addr 인수는 const 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 주소로 삽입합니다.

addr 인수는 const 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 및 그룹 식별자 옥텟 groupId에 대해 flags로 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 및 그룹 식별자 groupId에 대해 flags로 IPv6 멀티캐스트 주소를 구성합니다.

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

MakeIPv6PrefixMulticast

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

해당 부분에서 일시적인 접두사 IPv6 멀티캐스트 주소를 구성합니다.

라우팅 범위 scope 및 그룹 식별자 옥텟 groupId에 대해 임시 프리픽스 IPv6 멀티캐스트 주소를 구성하려면 MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId)를 사용합니다. 이는 길이가 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 주소를 수신할 객체입니다.