nl :: Inet :: Endereço de IP
#include <src/inet/IPAddress.h>
Endereço de protocolo da Internet.
Resumo
A camada Nest Inet usa objetos desta classe para representar endereços de protocolo da 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 distinto. |
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 é uma 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 é um endereço unicast global IPv6. |
IsIPv6LinkLocal (void) const | bool Teste se o endereço é endereço local com link IPv6 (LL). |
IsIPv6Multicast (void) const | bool Teste se o endereço é multicast IPv6. |
IsIPv6ULA (void) const | bool Teste se o endereço é um endereço local exclusivo (ULA) IPv6. |
IsMulticast (void) const | bool Teste se o endereço é IPv4 ou multicast 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 da plataforma. |
ToIPv4 (void) const | struct in_addr |
ToIPv6 (void) const | ip6_addr_t Extraia o endereço IPv6 como uma estrutura de dados da plataforma. |
ToIPv6 (void) const | struct in6_addr |
ToString (char *buf, uint32_t bufSize) const | char * Emita o endereço IP no formato de apresentação de texto convencional. |
Type (void) const | IPAddressType Extraia o tipo de endereço IP. |
WriteAddress (uint8_t *& p) const | void Emita o endereço IP na representação de rede padrão. |
operator!= (const IPAddress & other) const | bool Compare este endereço IP com outro para obter a desigualdade. |
operator= (const IPAddress & other) | Operador de atribuição convencional. |
operator== (const IPAddress & other) const | bool Compare este 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 de uma estrutura de dados da plataforma. |
FromSockAddr (const struct sockaddr & sockaddr) | Inject o endereço IPv6 a partir de um POSIX struct sockaddr& |
FromString (const char *str, IPAddress & output) | bool Digitalize o endereço IP a partir de seu texto de apresentação convencional. |
FromString (const char *str, size_t strLen, IPAddress & output) | bool Digitalize o endereço IP a partir de seu texto de apresentação convencional. |
MakeIPv4Broadcast (void) | Construa 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]) | Construa um endereço multicast IPv6 a partir de suas partes. |
MakeIPv6Multicast (uint8_t aFlags, uint8_t aScope, uint32_t aGroupId) | Construa um endereço multicast IPv6 a partir de suas partes. |
MakeIPv6PrefixMulticast (uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId) | Construa um endereço multicast IPv6 provisório com prefixo a partir de suas partes. |
MakeIPv6TransientMulticast (uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES]) | Construa um endereço multicast IPv6 transitório a partir de suas partes. |
MakeIPv6WellKnownMulticast (uint8_t aScope, uint32_t aGroupId) | Construa um endereço multicast IPv6 conhecido a partir de suas partes. |
MakeLLA (uint64_t interfaceId) | Construa um endereço local de link (LL) IPv6 a partir de seu IID. |
MakeULA (uint64_t globalId, uint16_t subnet, uint64_t interfaceId) | Construa um endereço local exclusivo (ULA) IPv6 a partir de suas partes. |
ReadAddress (const uint8_t *& p, IPAddress & output) | void Emita o endereço IP na representação de rede padrão. |
Atributos públicos
Addr
uint32_t Addr[4]
Matriz de palavras opacas para conter endereços IP (independente da versão do protocolo)
O endereço IPv6 usa todos os 128 bits divididos em quatro inteiros não assinados ordenados por bytes de rede de 32 bits. 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
Algum
IPAddress Any
O objeto de endereço IP não especificado distinto.
Este objeto é usado como uma constante para comparações de equivalência. Ele não deve ser modificado por usuários do Nest Inet Layer.
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 este método com um endereço local exclusivo IPv6 (ULA) para extrair o identificador de rede global, que é os 40 bits imediatamente após o prefixo de rede ULA distinto, ou seja, fd00 :: / 8. Em outras palavras, o identificador de rede global está localizado nos cinco bytes do 2º ao 6º bytes no endereço.
Detalhes | |
---|---|
Devoluções | Identificador de rede global de 40 bits ou zero se o endereço IP não for um endereço local exclusivo IPv6. |
InterfaceId
uint64_t InterfaceId( void ) const
Extraia o IID de um endereço ULA IPv6.
Use este método com um endereço local exclusivo (ULA) IPv6 para extrair o identificador identificador (IID), que é os 64 bits menos significativos do endereço.
Detalhes | |
---|---|
Devoluções | Identificador de interface de 64 bits ou zero se o endereço IP não for um endereço local exclusivo 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. Observe bem: o endereço não especificado não é um endereço IPv4.
Detalhes | |||||
---|---|---|---|---|---|
Valores Retornados |
|
IsIPv4Broadcast
bool IsIPv4Broadcast( void ) const
Teste se o endereço é uma transmissão IPv4.
Use este método para verificar se o endereço é o endereço de difusão IPv4 com finalidade especial.
Detalhes | |||||
---|---|---|---|---|---|
Valores Retornados |
|
IsIPv4Multicast
bool IsIPv4Multicast( void ) const
Teste se o endereço é multicast IPv4.
Use este método para verificar se o endereço é um endereço multicast IPv4.
Detalhes | |||||
---|---|---|---|---|---|
Valores Retornados |
|
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. Observe bem: o endereço não especificado não é um endereço IPv6.
Detalhes | |||||
---|---|---|---|---|---|
Valores Retornados |
|
IsIPv6GlobalUnicast
bool IsIPv6GlobalUnicast( void ) const
Teste se o endereço é um endereço unicast global 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 unicast global.
Detalhes | |||||
---|---|---|---|---|---|
Valores Retornados |
|
IsIPv6LinkLocal
bool IsIPv6LinkLocal( void ) const
Teste se o endereço é endereço local com link IPv6 (LL).
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 com link IPv6 reservado.
Detalhes | |||||
---|---|---|---|---|---|
Valores Retornados |
|
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 Retornados |
|
IsIPv6ULA
bool IsIPv6ULA( void ) const
Teste se o endereço é um endereço local exclusivo (ULA) 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 local exclusivo IPv6 reservado.
Detalhes | |||||
---|---|---|---|---|---|
Valores Retornados |
|
IsMulticast
bool IsMulticast( void ) const
Teste se o endereço é IPv4 ou multicast 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 Retornados |
|
Sub-rede
uint16_t Subnet( void ) const
Extraia o identificador de sub-rede de 16 bits de um endereço ULA IPv6.
Use este método com um endereço local exclusivo (ULA) IPv6 para extrair o identificador de sub-rede, que é os 16 bits menos significativos do prefixo da rede. O prefixo da rede são os 64 bits mais significativos do endereço. Em outras palavras, o identificador de sub-rede está localizado no 7º e 8º bytes de um endereço de 16 bytes.
Detalhes | |
---|---|
Devoluções | Identificador de sub-rede de 16 bits ou zero se o endereço IP não for um endereço local exclusivo IPv6. |
ToIPv4
ip4_addr_t ToIPv4( void ) const
Extraia o endereço IPv4 como uma estrutura de dados da plataforma.
Use ToIPv4() const
para extrair o conteúdo como um endereço IPv4, se possível. Endereços IPv6 e o endereço não especificado são extraídos como 0.0.0.0
.
O resultado é tanto de tipo struct in_addr
(em POSIX) ou ip4_addr_t
(em lwIP).
Detalhes | |
---|---|
Devoluções | O endereço IPv4 encapsulado, ou 0.0.0.0 se o endereço é ou não especificado ou não 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 da plataforma.
Use ToIPv6() const
para extrair o conteúdo como um endereço IPv6, se possível. Endereços IPv4 eo endereço indeterminado são extraídos como [::]
.
O resultado é tanto de tipo struct in6_addr
(em POSIX) ou ip6_addr_t
(em lwIP).
Detalhes | |
---|---|
Devoluções | O endereço IPv4 encapsulado, ou [::] if the address is either unspecified or not an IPv4 address. |
ToIPv6
struct in6_addr ToIPv6( void ) const
Para sequenciar
char * ToString( char *buf, uint32_t bufSize ) const
Emita o endereço IP no formato de apresentação de texto convencional.
Use ToString(char *buf, uint32_t bufSize) const
para escrever a forma de apresentação do texto convencional do endereço de IP à memória localizado na buf
e estendendo tanto quanto bufSize
bytes, incluindo o seu carácter de terminação NUL.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
Observação Bem: não é compatível com RFC 5952 em algumas plataformas. Especificamente, a compressão de zero não pode ser aplicada de acordo com a seção 4.2.
Detalhes | |
---|---|
Devoluções | O argumento buf se nenhum erro de formatação, ou zero caso contrário. |
Modelo
IPAddressType Type( void ) const
Extraia o tipo de endereço IP.
Utilize este método para retornar um valor do tipo enumerado IPAddressType
para indicar o tipo do endereço IP.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Valores Retornados |
|
WriteAddress
void WriteAddress( uint8_t *& p ) const
Emita 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 este endereço IP com outro para obter a desigualdade.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
| ||||
Valores Retornados |
|
operador =
IPAddress & operator=( const IPAddress & other )
Operador de atribuição convencional.
Detalhes | |||
---|---|---|---|
Parâmetros |
| ||
Devoluções | Uma referência a este objeto. |
operador ==
bool operator==( const IPAddress & other ) const
Compare este endereço IP com outro para equivalência.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
| ||||
Valores Retornados |
|
Funções estáticas públicas
FromIPv4
IPAddress FromIPv4( const ip4_addr_t & addr )
Esta é uma função de membro sobrecarregado, fornecido por conveniência. Ela difere da função acima apenas no (s) argumento (s) que 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 de addr
ou é do tipo const struct in_addr&
(em POSIX) ou const ip4_addr_t&
(em lwIP).
Detalhes | |
---|---|
Devoluções | O endereço IP construído. |
FromIPv6
IPAddress FromIPv6( const ip6_addr_t & addr )
Esta é uma função de membro sobrecarregado, fornecido por conveniência. Ela difere da função acima apenas no (s) argumento (s) que aceita.
FromIPv6
IPAddress FromIPv6( const struct in6_addr & addr )
Injete o endereço IPv6 de uma estrutura de dados da plataforma.
Use FromIPv6(const ip6_addr_t &addr)
para injetar addr
como um endereço IPv6.
O argumento de addr
ou é do tipo const struct in6_addr&
(em POSIX) ou const ip6_addr_t&
(em lwIP).
Detalhes | |
---|---|
Devoluções | O endereço IP construído. |
FromSockAddr
IPAddress FromSockAddr( const struct sockaddr & sockaddr )
Inject o endereço IPv6 a partir de um POSIX struct sockaddr&
Use FromSockAddr(const struct sockaddr& sockaddr)
para injetar sockaddr.sa_addr
como um endereço IPv6.
Detalhes | |
---|---|
Devoluções | O endereço IP construído. |
FromString
bool FromString( const char *str, IPAddress & output )
Digitalize o endereço IP a partir de seu texto de apresentação convencional.
Use FromString(const char *str, IPAddress& output)
para substituir um endereço IP por digitalizar a apresentação do texto convencional localizado na str
.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
Detalhes | |||||
---|---|---|---|---|---|
Valores Retornados |
|
FromString
bool FromString( const char *str, size_t strLen, IPAddress & output )
Digitalize o endereço IP a partir de seu texto de apresentação convencional.
Use FromString(const char *str, size_t strLen, IPAddress& output)
para substituir um endereço IP por digitalizar a apresentação do texto convencional localizado na str
.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
Detalhes | |||||
---|---|---|---|---|---|
Valores Retornados |
|
MakeIPv4Broadcast
IPAddress MakeIPv4Broadcast( void )
Construa um endereço de transmissão IPv4.
Detalhes | |
---|---|
Devoluções | 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] )
Construa um endereço multicast IPv6 a partir de suas partes.
Uso MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
para construir um endereço IPv6 multicast com flags
para encaminhamento âmbito scope
e octetos identificador de grupo groupId
.
Detalhes | |
---|---|
Devoluções | O endereço IP construído. |
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, uint32_t aGroupId )
Construa um endereço multicast IPv6 a partir de suas partes.
Use MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId)
para construir um endereço de multicast IPv6 com flags
para encaminhamento escopo scope
e grupo identificador groupId
.
Detalhes | |
---|---|
Devoluções | O endereço IP construído. |
MakeIPv6PrefixMulticast
IPAddress MakeIPv6PrefixMulticast( uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId )
Construa um endereço multicast IPv6 provisório com prefixo a partir de suas partes.
Uso MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId)
para a construção de um transiente, prefixo IPv6 multicast endereço para o encaminhamento com escopo scope
e octetos identificador de grupo groupId
, qualificado pelo prefixo prefix
de comprimento prefixlen
pedaços.
Detalhes | |
---|---|
Devoluções | 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] )
Construa um endereço multicast IPv6 transitório a partir de suas partes.
Use MakeIPv6TransientMulticast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
para construir uma IPv6 endereço transitória multicast com flags
para encaminhamento escopo scope
e octetos identificador de grupo groupId
.
Detalhes | |
---|---|
Devoluções | O endereço IP construído. |
MakeIPv6WellKnownMulticast
IPAddress MakeIPv6WellKnownMulticast( uint8_t aScope, uint32_t aGroupId )
Construa um endereço multicast IPv6 conhecido a partir de suas partes.
Uso MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId)
para construir um endereço multicast IPv6 para encaminhamento âmbito scope
e grupo identificador groupId
.
Detalhes | |
---|---|
Devoluções | O endereço IP construído. |
MakeLLA
IPAddress MakeLLA( uint64_t interfaceId )
Construa um endereço local de link (LL) IPv6 a partir de seu IID.
Use MakeLLA(uint64_t interfaceId)
para a construção de uma ligação local endereço IPv6 (LL) com a interface identificador interfaceId
.
Detalhes | |
---|---|
Devoluções | O endereço IP construído. |
MakeULA
IPAddress MakeULA( uint64_t globalId, uint16_t subnet, uint64_t interfaceId )
Construa um endereço local exclusivo (ULA) IPv6 a partir de suas partes.
Use MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
para construir um endereço único-local (ULA) com rede global identificador globalId
, sub-rede identificador subnet
ea interface identificador (IID) interfaceId
.
Detalhes | |
---|---|
Devoluções | O endereço IP construído. |
ReadAddress
void ReadAddress( const uint8_t *& p, IPAddress & output )
Emita 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 |
|