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 주소가 아닙니다.
세부 | |||||
---|---|---|---|---|---|
반환 값 |
|
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
와만큼 확장 bufSize
자사의 NUL 종료 문자를 포함한 바이트.
세부 | |||||
---|---|---|---|---|---|
매개 변수 |
|
참고 : 일부 플랫폼에서는 RFC 5952를 준수하지 않습니다. 특히 제로 압축은 섹션 4.2에 따라 적용되지 않을 수 있습니다.
세부 | |
---|---|
보고 | 인수 buf 어떤 포맷 오류가있는 경우, 또는 기타 영. |
유형
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)에 따라 인코딩됩니다.
세부 | |||
---|---|---|---|
매개 변수 |
|
연산자! =
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에서 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
.
세부 | |||||
---|---|---|---|---|---|
매개 변수 |
|
세부 | |||||
---|---|---|---|---|---|
반환 값 |
|
FromString
bool FromString( const char *str, size_t strLen, IPAddress & output )
기존 프레젠테이션 텍스트에서 IP 주소를 스캔합니다.
사용 FromString(const char *str, size_t strLen, IPAddress& output)
에있는 종래의 텍스트 프레젠테이션 주사하여 IP 어드레스를 덮어 쓰기하는 str
.
세부 | |||||||
---|---|---|---|---|---|---|---|
매개 변수 |
|
세부 | |||||
---|---|---|---|---|---|
반환 값 |
|
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
.
세부 | |||||
---|---|---|---|---|---|
매개 변수 |
|