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 주소가 아닙니다.
세부정보 | |||||
---|---|---|---|---|---|
반환 값 |
|
IsIPv4Broadcast
bool IsIPv4Broadcast( void ) const
주소가 IPv4 브로드캐스트인지 테스트합니다.
이 메서드를 사용하여 주소가 특수 목적 IPv4 브로드캐스트 주소인지 확인합니다.
세부정보 | |||||
---|---|---|---|---|---|
반환 값 |
|
IsIPv4Multicast
bool IsIPv4Multicast( void ) const
주소가 IPv4 멀티캐스트인지 테스트합니다.
이 메서드를 사용하여 주소가 IPv4 멀티캐스트 주소인지 확인합니다.
세부정보 | |||||
---|---|---|---|---|---|
반환 값 |
|
IsIPv6
bool IsIPv6( void ) const
주소가 IPv6와 호환되는지 테스트합니다.
이 방법을 사용하여 주소가 IPv6 주소 계열에 속하는지 확인합니다. 지정되지 않은 주소는 IPv6 주소가 아닙니다.
세부정보 | |||||
---|---|---|---|---|---|
반환 값 |
|
IsIPv6GlobalUnicast
bool IsIPv6GlobalUnicast( void ) const
주소가 IPv6 전역 유니캐스트 주소인지 테스트합니다.
이 방법을 사용하여 주소가 IPv6 주소 계열에 속하고 전역 유니캐스트 주소 접두어를 포함하는지 확인합니다.
세부정보 | |||||
---|---|---|---|---|---|
반환 값 |
|
IsIPv6LinkLocal
bool IsIPv6LinkLocal( void ) const
주소가 IPv6 링크-로컬 주소 (LL)인지 테스트합니다.
이 메서드를 사용하여 주소가 IPv6 주소 계열에 속하고 예약된 IPv6 링크-로컬 주소 프리픽스를 포함하는지 확인합니다.
세부정보 | |||||
---|---|---|---|---|---|
반환 값 |
|
IsIPv6Multicast
bool IsIPv6Multicast( void ) const
주소가 IPv6 멀티캐스트인지 테스트합니다.
이 메서드를 사용하여 주소가 IPv6 주소 계열에 속하고 예약된 IPv6 멀티캐스트 주소 접두사를 포함하는지 확인합니다.
세부정보 | |||||
---|---|---|---|---|---|
반환 값 |
|
ISIPv6ULA
bool IsIPv6ULA( void ) const
주소가 IPv6 고유 로컬 주소 (ULA)인지 테스트합니다.
이 메서드를 사용하여 주소가 IPv6 주소 계열에 속하고 예약된 IPv6 고유 로컬 주소 접두사를 포함하는지 확인합니다.
세부정보 | |||||
---|---|---|---|---|---|
반환 값 |
|
IsMulticast
bool IsMulticast( void ) const
주소가 IPv4 또는 IPv6 멀티캐스트인지 테스트합니다.
이 메서드를 사용하여 주소가 IPv4 또는 IPv6 주소 계열에 속하고 예약된 IPv4 또는 IPv6 멀티캐스트 주소 접두사가 있는지 확인합니다.
세부정보 | |||||
---|---|---|---|---|---|
반환 값 |
|
서브넷
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
바이트까지 확장합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
참고: 일부 플랫폼에서는 RFC 5952를 준수하지 않습니다. 구체적으로, 섹션 4.2에 따라 제로 압축이 적용되지 않을 수도 있습니다.
세부정보 | |
---|---|
반환 |
형식 오류가 없는 경우 인수
buf , 그렇지 않은 경우 0 |
유형
IPAddressType Type( void ) const
IP 주소 유형을 추출합니다.
이 메서드를 사용하면 열거된 유형인 IPAddressType
의 값을 반환하여 IP 주소 유형을 나타낼 수 있습니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
반환 값 |
|
WriteAddress
void WriteAddress( uint8_t *& p ) const
표준 네트워크 표현으로 IP 주소를 내보냅니다.
WriteAddress(uint8_t *&p)
를 사용하여 IPv6 주소에 RFC 4291에서 정의된 바이너리 형식으로 IP 주소를 인코딩합니다. IPv4 주소는 섹션 2.5.5.1 'IPv4 호환
IPv6 주소' (V4COMPAT)
세부정보 | |||
---|---|---|---|
매개변수 |
|
operator!=
bool operator!=( const IPAddress & other ) const
이 IP 주소를 다른 IP 주소와 비교합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
||||
반환 값 |
|
operator=
IPAddress & operator=( const IPAddress & other )
기존 할당 연산자입니다.
세부정보 | |||
---|---|---|---|
매개변수 |
|
||
반환 |
이 객체에 대한 참조입니다.
|
연산자==
bool operator==( const IPAddress & other ) const
이 IP 주소를 다른 IP 주소와 비교하면 동일한지 확인합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
||||
반환 값 |
|
공개 정적 함수
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 주소를 덮어씁니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
세부정보 | |||||
---|---|---|---|---|---|
반환 값 |
|
FromString
bool FromString( const char *str, size_t strLen, IPAddress & output )
기존 프레젠테이션 텍스트에서 IP 주소를 스캔합니다.
FromString(const char *str, size_t strLen, IPAddress& output)
로 str
에 있는 기존 텍스트 표시를 스캔하여 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 멀티캐스트 주소를 해당 부분에서 생성합니다.
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
및 그룹 식별자 옥텟 groupId
에 flags
로 임시 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
객체로 디코딩합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|