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