nl:: Inet:: IPAddress
#include <src/inet/IPAddress.h>
Endereço do protocolo de Internet.
Resumo
A Nest Inet Layer usa objetos dessa classe para representar endereços de protocolo de Internet (independente da versão do protocolo).
Atributos públicos |
|
---|---|
Addr[4]
|
uint32_t
Matriz de palavras opacas para conter endereços IP (independente da versão do protocolo)
|
Atributos estáticos públicos |
|
---|---|
Any
|
O objeto de endereço IP não especificado.
|
Funções públicas |
|
---|---|
GlobalId(void) const
|
uint64_t
Extraia o identificador de rede global de 16 bits de um endereço ULA IPv6.
|
InterfaceId(void) const
|
uint64_t
Extraia o IID de um endereço ULA IPv6.
|
IsIPv4(void) const
|
bool
Teste se o endereço é compatível com IPv4.
|
IsIPv4Broadcast(void) const
|
bool
Teste se o endereço é de transmissão IPv4.
|
IsIPv4Multicast(void) const
|
bool
Teste se o endereço é multicast IPv4.
|
IsIPv6(void) const
|
bool
Teste se o endereço é compatível com IPv6.
|
IsIPv6GlobalUnicast(void) const
|
bool
Teste se o endereço é unicast global IPv6.
|
IsIPv6LinkLocal(void) const
|
bool
Teste se o endereço é um endereço link-local (LL) IPv6.
|
IsIPv6Multicast(void) const
|
bool
Teste se o endereço é multicast IPv6.
|
IsIPv6ULA(void) const
|
bool
Teste se o endereço é IPv6 exclusivo (ULA, na sigla em inglês).
|
IsMulticast(void) const
|
bool
Teste se o endereço é multicast IPv4 ou IPv6.
|
Subnet(void) const
|
uint16_t
Extraia o identificador de sub-rede de 16 bits de um endereço ULA IPv6.
|
ToIPv4(void) const
|
Extraia o endereço IPv4 como uma estrutura de dados de plataforma.
|
ToIPv4(void) const
|
struct in_addr
|
ToIPv6(void) const
|
ip6_addr_t
Extraia o endereço IPv6 como uma estrutura de dados de plataforma.
|
ToIPv6(void) const
|
struct in6_addr
|
ToString(char *buf, uint32_t bufSize) const
|
char *
Emite o endereço IP no formato de apresentação de texto convencional.
|
Type(void) const
|
IPAddressType
Extraia o tipo do endereço IP.
|
WriteAddress(uint8_t *& p) const
|
void
Emite o endereço IP na representação de rede padrão.
|
operator!=(const IPAddress & other) const
|
bool
Compare esse endereço IP com outro para verificar se há desigualdade.
|
operator=(const IPAddress & other)
|
Operador de atribuição convencional.
|
operator==(const IPAddress & other) const
|
bool
Compare esse endereço IP com outro para equivalência.
|
Funções estáticas públicas |
|
---|---|
FromIPv4(const ip4_addr_t & addr)
|
|
FromIPv4(const struct in_addr & addr)
|
Injete o endereço IPv4 de uma estrutura de dados da plataforma.
|
FromIPv6(const ip6_addr_t & addr)
|
|
FromIPv6(const struct in6_addr & addr)
|
Injete o endereço IPv6 usando uma estrutura de dados da plataforma.
|
FromSockAddr(const struct sockaddr & sockaddr)
|
Injetar o endereço IPv6 de um
struct sockaddr& no formato POSIX |
FromString(const char *str, IPAddress & output)
|
bool
Digitalize o endereço IP usando o texto de apresentação convencional.
|
FromString(const char *str, size_t strLen, IPAddress & output)
|
bool
Digitalize o endereço IP usando o texto de apresentação convencional.
|
MakeIPv4Broadcast(void)
|
Crie um endereço de transmissão IPv4.
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
|
Construir um endereço multicast IPv6 usando as partes dele.
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, uint32_t aGroupId)
|
Construir um endereço multicast IPv6 usando as partes dele.
|
MakeIPv6PrefixMulticast(uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId)
|
Construir um endereço multicast IPv6 temporário com prefixo das partes dele.
|
MakeIPv6TransientMulticast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
|
Construir um endereço multicast IPv6 temporário das partes dele.
|
MakeIPv6WellKnownMulticast(uint8_t aScope, uint32_t aGroupId)
|
Construir um endereço multicast IPv6 conhecido usando as partes dele.
|
MakeLLA(uint64_t interfaceId)
|
Cria um endereço link-local (LL) IPv6 com base no IID.
|
MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
|
Construir um endereço IPv6 único (ULA, na sigla em inglês) usando as partes dele.
|
ReadAddress(const uint8_t *& p, IPAddress & output)
|
void
Emite o endereço IP na representação de rede padrão.
|
Atributos públicos
Adicionar
uint32_t Addr[4]
Matriz de palavras opacas para conter endereços IP (independente da versão do protocolo)
Os endereços IPv6 usam todos os 128 bits divididos em quatro números inteiros de 32 bits ordenados sem assinatura. Os endereços IPv4 são V4COMPAT, ou seja, as três primeiras palavras são zero e a quarta palavra contém o endereço IPv4 na ordem de bytes da rede.
Atributos estáticos públicos
Qualquer
IPAddress Any
O objeto de endereço IP não especificado.
Esse objeto é usado como uma constante para comparações de equivalência. Ele não pode ser modificado pelos usuários da camada Nest Inet.
Funções públicas
GlobalId
uint64_t GlobalId( void ) const
Extraia o identificador de rede global de 16 bits de um endereço ULA IPv6.
Use esse método com um endereço local exclusivo (ULA, na sigla em inglês) IPv6 para extrair o identificador de rede global, que são os 40 bits imediatamente após o prefixo distinto da rede ULA, ou seja, fd00::/8. Em outras palavras, o identificador de rede global está localizado nos cinco bytes do segundo ao 6o bytes do endereço.
Detalhes | |
---|---|
Retorna |
Identificador de rede global de 40 bits ou zero se o endereço IP não for um endereço IPv6 local exclusivo.
|
InterfaceId
uint64_t InterfaceId( void ) const
Extraia o IID de um endereço ULA IPv6.
Use esse método com um endereço local exclusivo (ULA, na sigla em inglês) IPv6 para extrair o identificador do identificador (IID, na sigla em inglês), que são os 64 bits menos significativos do endereço.
Detalhes | |
---|---|
Retorna |
Identificador de interface de 64 bits ou zero se o endereço IP não for um endereço local exclusivo do IPv6.
|
IsIPv4
bool IsIPv4( void ) const
Teste se o endereço é compatível com IPv4.
Use este método para verificar se o endereço pertence à família de endereços IPv4. Atenção: o endereço não especificado não é um endereço IPv4.
Detalhes | |||||
---|---|---|---|---|---|
Valores de retorno |
|
IsIPv4Broadcast
bool IsIPv4Broadcast( void ) const
Teste se o endereço é de transmissão IPv4.
Use esse método para verificar se o endereço é o endereço de transmissão IPv4 de finalidade especial.
Detalhes | |||||
---|---|---|---|---|---|
Valores de retorno |
|
IsIPv4Multicast
bool IsIPv4Multicast( void ) const
Teste se o endereço é multicast IPv4.
Use esse método para verificar se o endereço é um multicast IPv4.
Detalhes | |||||
---|---|---|---|---|---|
Valores de retorno |
|
IsIPv6
bool IsIPv6( void ) const
Teste se o endereço é compatível com IPv6.
Use este método para verificar se o endereço pertence à família de endereços IPv6. Atenção: o endereço não especificado não é um endereço IPv6.
Detalhes | |||||
---|---|---|---|---|---|
Valores de retorno |
|
IsIPv6GlobalUnicast
bool IsIPv6GlobalUnicast( void ) const
Teste se o endereço é unicast global IPv6.
Use esse método para verificar se o endereço pertence à família de endereços IPv6 e tem o prefixo de endereço unicast global.
Detalhes | |||||
---|---|---|---|---|---|
Valores de retorno |
|
IsIPv6LinkLocal
bool IsIPv6LinkLocal( void ) const
Teste se o endereço é um endereço link-local (LL) IPv6.
Use este método para verificar se o endereço pertence à família de endereços IPv6 e tem o prefixo de endereço link-local reservado IPv6.
Detalhes | |||||
---|---|---|---|---|---|
Valores de retorno |
|
IsIPv6Multicast
bool IsIPv6Multicast( void ) const
Teste se o endereço é multicast IPv6.
Use este método para verificar se o endereço pertence à família de endereços IPv6 e tem o prefixo de endereço multicast IPv6 reservado.
Detalhes | |||||
---|---|---|---|---|---|
Valores de retorno |
|
IsIPv6ULA
bool IsIPv6ULA( void ) const
Teste se o endereço é IPv6 exclusivo (ULA, na sigla em inglês).
Use este método para verificar se o endereço pertence à família de endereços IPv6 e tem o prefixo de endereço local exclusivo do IPv6 reservado.
Detalhes | |||||
---|---|---|---|---|---|
Valores de retorno |
|
IsMulticast
bool IsMulticast( void ) const
Teste se o endereço é multicast IPv4 ou IPv6.
Use este método para verificar se o endereço pertence à família de endereços IPv4 ou IPv6 e tem o prefixo de endereço multicast IPv4 ou IPv6 reservado.
Detalhes | |||||
---|---|---|---|---|---|
Valores de retorno |
|
Sub-rede
uint16_t Subnet( void ) const
Extraia o identificador de sub-rede de 16 bits de um endereço ULA IPv6.
Use esse método com um endereço local exclusivo (ULA, na sigla em inglês) IPv6 para extrair o identificador de sub-rede, que são os 16 bits menos significativos do prefixo da rede. O prefixo de rede são os 64 bits mais significativos do endereço. Em outras palavras, o identificador da sub-rede está localizado no sétimo e no oitavo bytes de um endereço de 16 bytes.
Detalhes | |
---|---|
Retorna |
Identificador de sub-rede de 16 bits ou zero se o endereço IP não for um endereço local exclusivo do IPv6.
|
ToIPv4
ip4_addr_t ToIPv4( void ) const
Extraia o endereço IPv4 como uma estrutura de dados de plataforma.
Use ToIPv4() const
para extrair o conteúdo como um endereço IPv4, se possível. Os endereços IPv6 e o endereço não especificado são extraídos como 0.0.0.0
.
O resultado é do tipo struct in_addr
(em POSIX) ou ip4_addr_t
(em LwIP).
Detalhes | |
---|---|
Retorna |
O endereço IPv4 encapsulado, ou
0.0.0.0 se o endereço não for especificado ou não for um endereço IPv4. |
ToIPv4
struct in_addr ToIPv4( void ) const
ToIPv6
ip6_addr_t ToIPv6( void ) const
Extraia o endereço IPv6 como uma estrutura de dados de plataforma.
Use ToIPv6() const
para extrair o conteúdo como um endereço IPv6, se possível. Os endereços IPv4 e o endereço não especificado são extraídos como [::]
.
O resultado é do tipo struct in6_addr
(em POSIX) ou ip6_addr_t
(em LwIP).
Detalhes | |
---|---|
Retorna |
O endereço IPv4 encapsulado, ou
[::] 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
Emite o endereço IP no formato de apresentação de texto convencional.
Use ToString(char *buf, uint32_t bufSize) const
para gravar a forma convencional de apresentação de texto do endereço IP na memória localizada em buf
e estendendo até bufSize
bytes, incluindo o caractere de encerramento NUL.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
Observação: não é compatível com o RFC 5952 em algumas plataformas. Especificamente, a compactação zero pode não ser aplicada de acordo com a seção 4.2.
Detalhes | |
---|---|
Retorna |
O argumento
buf se não houver erro de formatação. Caso contrário, será zero. |
Tipo
IPAddressType Type( void ) const
Extraia o tipo do endereço IP.
Use este método para retornar um valor do tipo enumerado IPAddressType
para indicar o tipo do endereço IP.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Valores de retorno |
|
WriteAddress
void WriteAddress( uint8_t *& p ) const
Emite o endereço IP na representação de rede padrão.
Use WriteAddress(uint8_t *&p)
para codificar o endereço IP no formato binário definido pela RFC 4291 para endereços IPv6. Os endereços IPv4 são codificados de acordo com a seção 2.5.5.1 "Endereço IPv6 compatível com IPv4" (V4COMPAT).
Detalhes | |||
---|---|---|---|
Parâmetros |
|
operador!=
bool operator!=( const IPAddress & other ) const
Compare esse endereço IP com outro para verificar se há desigualdade.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
operador=
IPAddress & operator=( const IPAddress & other )
Operador de atribuição convencional.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
Uma referência a esse objeto.
|
operador==
bool operator==( const IPAddress & other ) const
Compare esse endereço IP com outro para equivalência.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
Funções estáticas públicas
FromIPv4
IPAddress FromIPv4( const ip4_addr_t & addr )
Essa é uma função de membro sobrecarregada, fornecida por conveniência. Ela só difere da função acima em quais argumentos ela aceita.
FromIPv4
IPAddress FromIPv4( const struct in_addr & addr )
Injete o endereço IPv4 de uma estrutura de dados da plataforma.
Use FromIPv4(const ip4_addr_t &addr)
para injetar addr
como um endereço IPv4.
O argumento addr
é do tipo const struct in_addr&
(em POSIX) ou const ip4_addr_t&
(em LwIP).
Detalhes | |
---|---|
Retorna |
O endereço IP construído.
|
FromIPv6
IPAddress FromIPv6( const ip6_addr_t & addr )
Essa é uma função de membro sobrecarregada, fornecida por conveniência. Ela só difere da função acima em quais argumentos ela aceita.
FromIPv6
IPAddress FromIPv6( const struct in6_addr & addr )
Injete o endereço IPv6 usando uma estrutura de dados da plataforma.
Use FromIPv6(const ip6_addr_t &addr)
para injetar addr
como um endereço IPv6.
O argumento addr
é do tipo const struct in6_addr&
(em POSIX) ou const ip6_addr_t&
(em LwIP).
Detalhes | |
---|---|
Retorna |
O endereço IP construído.
|
FromSockAddr
IPAddress FromSockAddr( const struct sockaddr & sockaddr )
Injetar o endereço IPv6 de um struct sockaddr&
no formato POSIX
Use FromSockAddr(const struct sockaddr& sockaddr)
para injetar sockaddr.sa_addr
como um endereço IPv6.
Detalhes | |
---|---|
Retorna |
O endereço IP construído.
|
FromString
bool FromString( const char *str, IPAddress & output )
Digitalize o endereço IP usando o texto de apresentação convencional.
Use FromString(const char *str, IPAddress& output)
para substituir um endereço IP verificando a apresentação de texto convencional localizada em str
.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
Detalhes | |||||
---|---|---|---|---|---|
Valores de retorno |
|
FromString
bool FromString( const char *str, size_t strLen, IPAddress & output )
Digitalize o endereço IP usando o texto de apresentação convencional.
Use FromString(const char *str, size_t strLen, IPAddress& output)
para substituir um endereço IP verificando a apresentação de texto convencional localizada em str
.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
Detalhes | |||||
---|---|---|---|---|---|
Valores de retorno |
|
MakeIPv4Broadcast
IPAddress MakeIPv4Broadcast( void )
Crie um endereço de transmissão IPv4.
Detalhes | |
---|---|
Retorna |
O endereço IP construído.
|
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES] )
Construir um endereço multicast IPv6 usando as partes dele.
Use MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
para construir um endereço multicast IPv6 com flags
para o escopo de roteamento scope
e octetos de identificadores de grupo groupId
.
Detalhes | |
---|---|
Retorna |
O endereço IP construído.
|
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, uint32_t aGroupId )
Construir um endereço multicast IPv6 usando as partes dele.
Use MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId)
para criar um endereço multicast IPv6 com flags
para o escopo de roteamento scope
e o identificador de grupo groupId
.
Detalhes | |
---|---|
Retorna |
O endereço IP construído.
|
MakeIPv6PrefixMulticast
IPAddress MakeIPv6PrefixMulticast( uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId )
Construir um endereço multicast IPv6 temporário com prefixo das partes dele.
Use MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId)
para construir um endereço multicast IPv6 temporário com prefixo para o escopo de roteamento scope
e octetos de identificador de grupo groupId
, qualificados pelo prefixo prefix
de prefixlen
bits de comprimento.
Detalhes | |
---|---|
Retorna |
O endereço IP construído.
|
MakeIPv6TransientMulticast
IPAddress MakeIPv6TransientMulticast( uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES] )
Construir um endereço multicast IPv6 temporário das partes dele.
Use MakeIPv6TransientMulticast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
para construir um endereço multicast IPv6 temporário com flags
para o escopo de roteamento scope
e octetos de identificadores de grupo groupId
.
Detalhes | |
---|---|
Retorna |
O endereço IP construído.
|
MakeIPv6WellKnownMulticast
IPAddress MakeIPv6WellKnownMulticast( uint8_t aScope, uint32_t aGroupId )
Construir um endereço multicast IPv6 conhecido usando as partes dele.
Use MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId)
a fim de criar um endereço multicast IPv6 para o escopo de roteamento scope
e o identificador de grupo groupId
.
Detalhes | |
---|---|
Retorna |
O endereço IP construído.
|
MakeLLA
IPAddress MakeLLA( uint64_t interfaceId )
Cria um endereço link-local (LL) IPv6 com base no IID.
Use MakeLLA(uint64_t interfaceId)
para construir um endereço link-local (LL) IPv6 com o identificador de interface interfaceId
.
Detalhes | |
---|---|
Retorna |
O endereço IP construído.
|
MakeULA
IPAddress MakeULA( uint64_t globalId, uint16_t subnet, uint64_t interfaceId )
Construir um endereço IPv6 único (ULA, na sigla em inglês) usando as partes dele.
Use MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
para construir um endereço local exclusivo (ULA, na sigla em inglês) com o identificador de rede global globalId
, o identificador de sub-rede subnet
e o identificador de interface (IID, na sigla em inglês) interfaceId
.
Detalhes | |
---|---|
Retorna |
O endereço IP construído.
|
ReadAddress
void ReadAddress( const uint8_t *& p, IPAddress & output )
Emite o endereço IP na representação de rede padrão.
Use ReadAddress(uint8_t *&p, IPAddress &output)
para decodificar o endereço IP em p
para o objeto output
.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|