nl:: Inet:: IPAddress
#include <src/inet/IPAddress.h>
dirección de protocolo de Internet.
Resumen
La capa de Nest Inet utiliza objetos de esta clase para representar direcciones de protocolo de Internet (independientemente de la versión del protocolo).
Atributos públicos |
|
---|---|
Addr[4]
|
uint32_t
Array opaco de palabras para contener direcciones IP (independientemente de la versión del protocolo)
|
Atributos estáticos públicos |
|
---|---|
Any
|
El objeto de dirección IP no especificado distinguido.
|
Funciones públicas |
|
---|---|
GlobalId(void) const
|
uint64_t
Extrae el identificador de red global de 16 bits de una dirección IPv6 ULA.
|
InterfaceId(void) const
|
uint64_t
Extrae el IID de una dirección ULA IPv6.
|
IsIPv4(void) const
|
bool
Prueba si la dirección es compatible con IPv4.
|
IsIPv4Broadcast(void) const
|
bool
Prueba si la dirección es de transmisión IPv4.
|
IsIPv4Multicast(void) const
|
bool
Prueba si la dirección es multidifusión IPv4.
|
IsIPv6(void) const
|
bool
Prueba si la dirección es compatible con IPv6.
|
IsIPv6GlobalUnicast(void) const
|
bool
Prueba si la dirección es una dirección de unidifusión global IPv6.
|
IsIPv6LinkLocal(void) const
|
bool
Comprueba si la dirección es una dirección de vínculo local (LL) IPv6.
|
IsIPv6Multicast(void) const
|
bool
Prueba si la dirección es de multidifusión IPv6.
|
IsIPv6ULA(void) const
|
bool
Comprueba si la dirección es una dirección IPv6 local única (ULA).
|
IsMulticast(void) const
|
bool
Prueba si la dirección es IPv4 o multidifusión IPv6.
|
Subnet(void) const
|
uint16_t
Extrae el identificador de subred de 16 bits de una dirección IPv6 ULA.
|
ToIPv4(void) const
|
Extrae la dirección IPv4 como una estructura de datos de la plataforma.
|
ToIPv4(void) const
|
struct in_addr
|
ToIPv6(void) const
|
ip6_addr_t
Extrae la dirección IPv6 como estructura de datos de la plataforma.
|
ToIPv6(void) const
|
struct in6_addr
|
ToString(char *buf, uint32_t bufSize) const
|
char *
Emite la dirección IP en un formato de presentación de texto convencional.
|
Type(void) const
|
IPAddressType
Extrae el tipo de dirección IP.
|
WriteAddress(uint8_t *& p) const
|
void
Emite la dirección IP en la representación de red estándar.
|
operator!=(const IPAddress & other) const
|
bool
Compara esta dirección IP con otra para detectar la inequivalencia.
|
operator=(const IPAddress & other)
|
Operador de asignación convencional.
|
operator==(const IPAddress & other) const
|
bool
Compara esta dirección IP con otra para la equivalencia.
|
Funciones estáticas públicas |
|
---|---|
FromIPv4(const ip4_addr_t & addr)
|
|
FromIPv4(const struct in_addr & addr)
|
Incorpora la dirección IPv4 desde la estructura de datos de una plataforma.
|
FromIPv6(const ip6_addr_t & addr)
|
|
FromIPv6(const struct in6_addr & addr)
|
Incorpora la dirección IPv6 desde la estructura de datos de una plataforma.
|
FromSockAddr(const struct sockaddr & sockaddr)
|
Inserta la dirección IPv6 desde un
struct sockaddr& de POSIX |
FromString(const char *str, IPAddress & output)
|
bool
Escanea la dirección IP a partir del texto de presentación convencional.
|
FromString(const char *str, size_t strLen, IPAddress & output)
|
bool
Escanea la dirección IP a partir del texto de presentación convencional.
|
MakeIPv4Broadcast(void)
|
Construye una dirección de transmisión IPv4.
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
|
Construye una dirección de multidifusión IPv6 a partir de sus partes.
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, uint32_t aGroupId)
|
Construye una dirección de multidifusión IPv6 a partir de sus partes.
|
MakeIPv6PrefixMulticast(uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId)
|
Construye una dirección de multidifusión IPv6 con prefijo transitorio a partir de sus partes.
|
MakeIPv6TransientMulticast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
|
Construye una dirección de multidifusión IPv6 transitoria a partir de sus partes.
|
MakeIPv6WellKnownMulticast(uint8_t aScope, uint32_t aGroupId)
|
Construye una dirección de multidifusión IPv6 conocida a partir de sus partes.
|
MakeLLA(uint64_t interfaceId)
|
Crea una dirección de vínculo local (LL) IPv6 a partir de su IID.
|
MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
|
Construye una dirección IPv6 local única (ULA) a partir de sus partes.
|
ReadAddress(const uint8_t *& p, IPAddress & output)
|
void
Emite la dirección IP en la representación de red estándar.
|
Atributos públicos
Addr
uint32_t Addr[4]
Array opaco de palabras para contener direcciones IP (independientemente de la versión del protocolo)
La dirección IPv6 usa todos los de 128 bits divididos en cuatro números enteros sin firma ordenados por bytes de red de 32 bits. Las direcciones IPv4 son V4COMPAT, es decir, las tres primeras palabras son cero y la cuarta palabra contiene la dirección IPv4 en orden de bytes de red.
Atributos estáticos públicos
Cualquiera
IPAddress Any
El objeto de dirección IP no especificado distinguido.
Este objeto se usa como una constante para las comparaciones de equivalencia. Los usuarios de la capa de Nest Inet no deben modificarla.
Funciones públicas
GlobalId
uint64_t GlobalId( void ) const
Extrae el identificador de red global de 16 bits de una dirección IPv6 ULA.
Usa este método con una dirección IPv6 local única (ULA) para extraer el identificador de red global, que corresponde a los 40 bits que siguen al prefijo de red ULA distinguido, es decir, fd00::/8. En otras palabras, el identificador de red global se encuentra en los cinco bytes desde el segundo segundo hasta el sexto bytes en la dirección.
Detalles | |
---|---|
Resultado que se muestra |
identificador de red global de 40 bits, o cero si la dirección IP no es una dirección IPv6 local única.
|
InterfaceId
uint64_t InterfaceId( void ) const
Extrae el IID de una dirección ULA IPv6.
Usa este método con una dirección IPv6 local única (ULA) para extraer el identificador de identificador (IID), que es los 64 bits menos significativos de la dirección.
Detalles | |
---|---|
Resultado que se muestra |
identificador de interfaz de 64 bits, o cero si la dirección IP no es una dirección IPv6 local única.
|
IsIPv4
bool IsIPv4( void ) const
Prueba si la dirección es compatible con IPv4.
Usa este método para comprobar si la dirección pertenece a la familia de direcciones IPv4. Ten en cuenta que la dirección sin especificar no es una dirección IPv4.
Detalles | |||||
---|---|---|---|---|---|
Valores de retorno |
|
IsIPv4Broadcast
bool IsIPv4Broadcast( void ) const
Prueba si la dirección es de transmisión IPv4.
Usa este método para verificar si la dirección es la dirección de transmisión IPv4 de propósito especial.
Detalles | |||||
---|---|---|---|---|---|
Valores de retorno |
|
IsIPv4Multicast
bool IsIPv4Multicast( void ) const
Prueba si la dirección es multidifusión IPv4.
Usa este método para verificar si la dirección es una dirección de multidifusión IPv4.
Detalles | |||||
---|---|---|---|---|---|
Valores de retorno |
|
IsIPv6
bool IsIPv6( void ) const
Prueba si la dirección es compatible con IPv6.
Usa este método para comprobar si la dirección pertenece a la familia de direcciones IPv6. Ten en cuenta que la dirección sin especificar no es una dirección IPv6.
Detalles | |||||
---|---|---|---|---|---|
Valores de retorno |
|
IsIPv6GlobalUnicast
bool IsIPv6GlobalUnicast( void ) const
Prueba si la dirección es una dirección de unidifusión global IPv6.
Usa este método para comprobar si la dirección pertenece a la familia de direcciones IPv6 y si tiene el prefijo de dirección de unidifusión global.
Detalles | |||||
---|---|---|---|---|---|
Valores de retorno |
|
IsIPv6LinkLocal
bool IsIPv6LinkLocal( void ) const
Comprueba si la dirección es una dirección de vínculo local (LL) IPv6.
Usa este método para comprobar si la dirección pertenece a la familia de direcciones IPv6 y tiene el prefijo de dirección de vínculo local IPv6 reservado.
Detalles | |||||
---|---|---|---|---|---|
Valores de retorno |
|
IsIPv6Multicast
bool IsIPv6Multicast( void ) const
Prueba si la dirección es de multidifusión IPv6.
Usa este método para comprobar si la dirección pertenece a la familia de direcciones IPv6 y si tiene el prefijo de dirección multicast IPv6 reservado.
Detalles | |||||
---|---|---|---|---|---|
Valores de retorno |
|
IsIPv6ULA
bool IsIPv6ULA( void ) const
Comprueba si la dirección es una dirección IPv6 local única (ULA).
Usa este método para comprobar si la dirección pertenece a la familia de direcciones IPv6 y si tiene el prefijo de dirección local único de IPv6 reservado.
Detalles | |||||
---|---|---|---|---|---|
Valores de retorno |
|
IsMulticast
bool IsMulticast( void ) const
Prueba si la dirección es IPv4 o multidifusión IPv6.
Usa este método para comprobar si la dirección pertenece a la familia de direcciones IPv4 o IPv6 y si tiene el prefijo reservado de dirección multidifusión IPv4 o IPv6.
Detalles | |||||
---|---|---|---|---|---|
Valores de retorno |
|
Subred
uint16_t Subnet( void ) const
Extrae el identificador de subred de 16 bits de una dirección IPv6 ULA.
Usa este método con una dirección IPv6 local única (ULA) para extraer el identificador de subred, que son los 16 bits menos significativos del prefijo de red. El prefijo de red corresponde a los 64 bits más significativos de la dirección. En otras palabras, el identificador de subred se encuentra en los bytes 7o y 8o de una dirección de 16 bytes.
Detalles | |
---|---|
Resultado que se muestra |
Identificador de subred de 16 bits, o cero si la dirección IP no es una dirección local único de IPv6.
|
ToIPv4
ip4_addr_t ToIPv4( void ) const
Extrae la dirección IPv4 como una estructura de datos de la plataforma.
Si es posible, usa ToIPv4() const
para extraer el contenido como una dirección IPv4. Las direcciones IPv6 y la dirección no especificada se extraen como 0.0.0.0
.
El resultado es del tipo struct in_addr
(en POSIX) o ip4_addr_t
(en LwIP).
Detalles | |
---|---|
Resultado que se muestra |
La dirección IPv4 encapsulada, o
0.0.0.0 si la dirección no se especifica o no es una dirección IPv4. |
ToIPv4
struct in_addr ToIPv4( void ) const
ToIPv6
ip6_addr_t ToIPv6( void ) const
Extrae la dirección IPv6 como estructura de datos de la plataforma.
Si es posible, usa ToIPv6() const
para extraer el contenido como una dirección IPv6. Las direcciones IPv4 y la dirección no especificada se extraen como [::]
.
El resultado es del tipo struct in6_addr
(en POSIX) o ip6_addr_t
(en LwIP).
Detalles | |
---|---|
Resultado que se muestra |
La dirección IPv4 encapsulada, o
[::] 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 la dirección IP en un formato de presentación de texto convencional.
Usa ToString(char *buf, uint32_t bufSize) const
para escribir el formato de presentación de texto convencional de la dirección IP en la memoria ubicada en buf
y extendiendo hasta bufSize
bytes, incluido su carácter de terminación NUL.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
Ten en cuenta que no cumple con el estándar RFC 5952 en algunas plataformas. Específicamente, la compresión cero no se puede aplicar según la sección 4.2.
Detalles | |
---|---|
Resultado que se muestra |
El argumento
buf si no hay error de formato, o cero en caso contrario. |
Tipo
IPAddressType Type( void ) const
Extrae el tipo de dirección IP.
Usa este método para mostrar un valor del tipo enumerado IPAddressType
para indicar el tipo de dirección IP.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Valores de retorno |
|
WriteAddress
void WriteAddress( uint8_t *& p ) const
Emite la dirección IP en la representación de red estándar.
Usa WriteAddress(uint8_t *&p)
para codificar la dirección IP en el formato binario definido por RFC 4291 para las direcciones IPv6. Las direcciones IPv4 se codifican según la sección 2.5.5.1 “Compatible con IPv4
Dirección IPv6" (V4COMPAT).
Detalles | |||
---|---|---|---|
Parámetros |
|
operator!=
bool operator!=( const IPAddress & other ) const
Compara esta dirección IP con otra para detectar la inequivalencia.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores de retorno |
|
operator=
IPAddress & operator=( const IPAddress & other )
Operador de asignación convencional.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Resultado que se muestra |
Es una referencia a este objeto.
|
operador==
bool operator==( const IPAddress & other ) const
Compara esta dirección IP con otra para la equivalencia.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores de retorno |
|
Funciones estáticas públicas
FromIPv4
IPAddress FromIPv4( const ip4_addr_t & addr )
Esta es una función de miembro sobrecargada, proporcionada para mayor comodidad. Difiere de la función anterior solo en los argumentos que acepta.
FromIPv4
IPAddress FromIPv4( const struct in_addr & addr )
Incorpora la dirección IPv4 desde la estructura de datos de una plataforma.
Usa FromIPv4(const ip4_addr_t &addr)
para insertar addr
como una dirección IPv4.
El argumento addr
es del tipo const struct in_addr&
(en POSIX) o const ip4_addr_t&
(en LwIP).
Detalles | |
---|---|
Resultado que se muestra |
La dirección IP construida.
|
FromIPv6
IPAddress FromIPv6( const ip6_addr_t & addr )
Esta es una función de miembro sobrecargada, proporcionada para mayor comodidad. Difiere de la función anterior solo en los argumentos que acepta.
FromIPv6
IPAddress FromIPv6( const struct in6_addr & addr )
Incorpora la dirección IPv6 desde la estructura de datos de una plataforma.
Usa FromIPv6(const ip6_addr_t &addr)
para insertar addr
como una dirección IPv6.
El argumento addr
es del tipo const struct in6_addr&
(en POSIX) o const ip6_addr_t&
(en LwIP).
Detalles | |
---|---|
Resultado que se muestra |
La dirección IP construida.
|
FromSockAddr
IPAddress FromSockAddr( const struct sockaddr & sockaddr )
Inserta la dirección IPv6 desde un struct sockaddr&
de POSIX
Usa FromSockAddr(const struct sockaddr& sockaddr)
para insertar sockaddr.sa_addr
como una dirección IPv6.
Detalles | |
---|---|
Resultado que se muestra |
La dirección IP construida.
|
FromString
bool FromString( const char *str, IPAddress & output )
Escanea la dirección IP a partir del texto de presentación convencional.
Usa FromString(const char *str, IPAddress& output)
para reemplazar una dirección IP mediante el análisis de la presentación de texto convencional ubicada en str
.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
Detalles | |||||
---|---|---|---|---|---|
Valores de retorno |
|
FromString
bool FromString( const char *str, size_t strLen, IPAddress & output )
Escanea la dirección IP a partir del texto de presentación convencional.
Usa FromString(const char *str, size_t strLen, IPAddress& output)
para reemplazar una dirección IP mediante el análisis de la presentación de texto convencional ubicada en str
.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
Detalles | |||||
---|---|---|---|---|---|
Valores de retorno |
|
MakeIPv4Broadcast
IPAddress MakeIPv4Broadcast( void )
Construye una dirección de transmisión IPv4.
Detalles | |
---|---|
Resultado que se muestra |
La dirección IP construida.
|
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES] )
Construye una dirección de multidifusión IPv6 a partir de sus partes.
Usa MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
para construir una dirección de multidifusión IPv6 con flags
para el permiso de enrutamiento scope
y los octetos de identificadores de grupo groupId
.
Detalles | |
---|---|
Resultado que se muestra |
La dirección IP construida.
|
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, uint32_t aGroupId )
Construye una dirección de multidifusión IPv6 a partir de sus partes.
Usa MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId)
para construir una dirección de multidifusión IPv6 con flags
para el permiso de enrutamiento scope
y el identificador de grupo groupId
.
Detalles | |
---|---|
Resultado que se muestra |
La dirección IP construida.
|
MakeIPv6PrefixMulticast
IPAddress MakeIPv6PrefixMulticast( uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId )
Construye una dirección de multidifusión IPv6 con prefijo transitorio a partir de sus partes.
Usa MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId)
para construir una dirección de multidifusión IPv6 con prefijo transitorio para el alcance de enrutamiento scope
y los octetos de identificador de grupo groupId
, calificada por el prefijo prefix
de prefixlen
bits de longitud.
Detalles | |
---|---|
Resultado que se muestra |
La dirección IP construida.
|
MakeIPv6TransientMulticast
IPAddress MakeIPv6TransientMulticast( uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES] )
Construye una dirección de multidifusión IPv6 transitoria a partir de sus partes.
Usa MakeIPv6TransientMulticast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
para construir una dirección de multidifusión IPv6 transitoria con flags
para el permiso de enrutamiento scope
y los octetos de identificadores de grupo groupId
.
Detalles | |
---|---|
Resultado que se muestra |
La dirección IP construida.
|
MakeIPv6WellKnownMulticast
IPAddress MakeIPv6WellKnownMulticast( uint8_t aScope, uint32_t aGroupId )
Construye una dirección de multidifusión IPv6 conocida a partir de sus partes.
Usa MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId)
para construir una dirección de multidifusión IPv6 para el permiso de enrutamiento scope
y el identificador de grupo groupId
.
Detalles | |
---|---|
Resultado que se muestra |
La dirección IP construida.
|
MakeLLA
IPAddress MakeLLA( uint64_t interfaceId )
Crea una dirección de vínculo local (LL) IPv6 a partir de su IID.
Usa MakeLLA(uint64_t interfaceId)
para construir una dirección de vínculo local (LL) IPv6 con el identificador de interfaz interfaceId
.
Detalles | |
---|---|
Resultado que se muestra |
La dirección IP construida.
|
MakeULA
IPAddress MakeULA( uint64_t globalId, uint16_t subnet, uint64_t interfaceId )
Construye una dirección IPv6 local única (ULA) a partir de sus partes.
Usa MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
para construir una dirección local única (ULA) con el identificador de red global globalId
, el identificador de subred subnet
y el identificador de interfaz (IID) interfaceId
.
Detalles | |
---|---|
Resultado que se muestra |
La dirección IP construida.
|
ReadAddress
void ReadAddress( const uint8_t *& p, IPAddress & output )
Emite la dirección IP en la representación de red estándar.
Usa ReadAddress(uint8_t *&p, IPAddress &output)
para decodificar la dirección IP en p
en el objeto output
.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|