Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

nl :: Inet :: IP 주소

#include <src/inet/IPAddress.h>

인터넷 프로토콜 주소.

요약

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

공용 속성

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에서 IPv6 주소를 주입 struct sockaddr&
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 Layer 사용자가 수정해서는 안됩니다.

공공 기능

GlobalId

uint64_t GlobalId(
  void
) const 

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

이 방법을 IPv6 고유 로컬 주소 (ULA)와 함께 사용하여 전역 네트워크 식별자를 추출합니다.이 식별자는 고유 ULA 네트워크 접두사 바로 뒤에 오는 40 비트입니다 (예 : fd00 :: / 8). 즉, 글로벌 네트워크 식별자는 주소의 2 번째 2 번째부터 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 와만큼 확장 bufSize 자사의 NUL 종료 문자를 포함한 바이트.

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

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

세부
보고
인수 buf 어떤 포맷 오류가있는 경우, 또는 기타 영.

유형

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
쓰기에 사용할 커서에 대한 참조입니다.

연산자! =

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 주소로.

인수 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에서 IPv6 주소를 주입 struct sockaddr&

사용 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) 에있는 기존의 프레젠테이션 텍스트 검색하여 IP 주소를 덮어 str .

세부
매개 변수
[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) 에있는 종래의 텍스트 프레젠테이션 주사하여 IP 어드레스를 덮어 쓰기하는 str .

세부
매개 변수
[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]) 과 함께 IPv6 멀티 캐스트 주소를 구성하는 flags 영역 라우팅 scope 및 그룹 식별자 옥텟 groupId .

세부
보고
구성된 IP 주소입니다.

MakeIPv6Multicast

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

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

사용 MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId) 과 함께 IPv6 멀티 캐스트 주소를 구성하는 flags 영역 라우팅 scope 식별자와 그룹 groupId .

세부
보고
구성된 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) 범위 라우팅와 프리픽스 IPv6 멀티 캐스트 주소를 과도를 구성 scope 및 그룹 식별자 옥텟 groupId 접두사에 의해 정규화, prefix 길이 prefixlen 비트.

세부
보고
구성된 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]) 과 과도 IPv6 멀티 캐스트 주소를 구성하는 flags 영역 라우팅 scope 및 그룹 식별자 옥텟 groupId .

세부
보고
구성된 IP 주소입니다.

MakeIPv6WellKnownMulticast

IPAddress MakeIPv6WellKnownMulticast(
  uint8_t aScope,
  uint32_t aGroupId
)

해당 부분에서 잘 알려진 IPv6 멀티 캐스트 주소를 구성합니다.

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

세부
보고
구성된 IP 주소입니다.

MakeLLA

IPAddress MakeLLA(
  uint64_t interfaceId
)

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

사용 MakeLLA(uint64_t interfaceId) IPv6 링크 - 로컬 어드레스 (LL)와 인터페이스 식별자를 구성하는 interfaceId .

세부
보고
구성된 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) 글로벌 네트워크 식별자가 고유 한 로컬 주소 (ULA) 구성하는 globalId , 서브넷 식별자 subnet 및 인터페이스 식별자 (IID) interfaceId .

세부
보고
구성된 IP 주소입니다.

ReadAddress

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

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

사용 ReadAddress(uint8_t *&p, IPAddress &output) 의 IP 주소를 디코딩하는 p 오브젝트에 output .

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