nl :: Inet :: Dirección IP
#include <src/inet/IPAddress.h>
Dirección del 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 Matriz de palabras opacas para contener direcciones IP (independientemente de la versión del protocolo) |
Atributos estáticos públicos | |
---|---|
Any | Objeto de dirección IP no especificado distinguido. |
Funciones publicas | |
---|---|
GlobalId (void) const | uint64_t Extraiga el identificador de red global de 16 bits de una dirección ULA IPv6. |
InterfaceId (void) const | uint64_t Extraiga el IID de una dirección ULA IPv6. |
IsIPv4 (void) const | bool Pruebe si la dirección es compatible con IPv4. |
IsIPv4Broadcast (void) const | bool Pruebe si la dirección es una transmisión IPv4. |
IsIPv4Multicast (void) const | bool Pruebe si la dirección es multidifusión IPv4. |
IsIPv6 (void) const | bool Pruebe si la dirección es compatible con IPv6. |
IsIPv6GlobalUnicast (void) const | bool Pruebe si la dirección es una dirección de unidifusión global IPv6. |
IsIPv6LinkLocal (void) const | bool Pruebe si la dirección es una dirección local de enlace (LL) IPv6. |
IsIPv6Multicast (void) const | bool Pruebe si la dirección es de multidifusión IPv6. |
IsIPv6ULA (void) const | bool Pruebe si la dirección es una dirección local única (ULA) IPv6. |
IsMulticast (void) const | bool Pruebe si la dirección es de multidifusión IPv4 o IPv6. |
Subnet (void) const | uint16_t Extraiga el identificador de subred de 16 bits de una dirección ULA IPv6. |
ToIPv4 (void) const | Extraiga la dirección IPv4 como una estructura de datos de plataforma. |
ToIPv4 (void) const | struct in_addr |
ToIPv6 (void) const | ip6_addr_t Extraiga la dirección IPv6 como una estructura de datos de 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 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 Compare esta dirección IP con otra para determinar la desigualdad. |
operator= (const IPAddress & other) | Operador de asignación convencional. |
operator== (const IPAddress & other) const | bool Compare esta dirección IP con otra para verificar la equivalencia. |
Funciones estáticas públicas | |
---|---|
FromIPv4 (const ip4_addr_t & addr) | |
FromIPv4 (const struct in_addr & addr) | Inyecte la dirección IPv4 de una estructura de datos de plataforma. |
FromIPv6 (const ip6_addr_t & addr) | |
FromIPv6 (const struct in6_addr & addr) | Inyecte la dirección IPv6 de una estructura de datos de plataforma. |
FromSockAddr (const struct sockaddr & sockaddr) | Inyectar la dirección IPv6 de un POSIX struct sockaddr& |
FromString (const char *str, IPAddress & output) | bool Escanee la dirección IP de su texto de presentación convencional. |
FromString (const char *str, size_t strLen, IPAddress & output) | bool Escanee la dirección IP de su texto de presentación convencional. |
MakeIPv4Broadcast (void) | Construya 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]) | Construya una dirección de multidifusión IPv6 a partir de sus partes. |
MakeIPv6Multicast (uint8_t aFlags, uint8_t aScope, uint32_t aGroupId) | Construya 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) | Construya 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]) | Construya una dirección de multidifusión IPv6 transitoria a partir de sus partes. |
MakeIPv6WellKnownMulticast (uint8_t aScope, uint32_t aGroupId) | Construya una dirección de multidifusión IPv6 conocida a partir de sus partes. |
MakeLLA (uint64_t interfaceId) | Construya una dirección local de enlace (LL) IPv6 a partir de su IID. |
MakeULA (uint64_t globalId, uint16_t subnet, uint64_t interfaceId) | Construya una dirección local única (ULA) IPv6 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]
Matriz de palabras opacas para contener direcciones IP (independientemente de la versión del protocolo)
La dirección IPv6 utiliza todos los 128 bits divididos en cuatro enteros sin signo 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
Alguna
IPAddress Any
Objeto de dirección IP no especificado distinguido.
Este objeto se utiliza como constante para las comparaciones de equivalencia. Los usuarios de la capa Nest Inet no deben modificarlo.
Funciones publicas
GlobalId
uint64_t GlobalId( void ) const
Extraiga el identificador de red global de 16 bits de una dirección ULA IPv6.
Utilice este método con una dirección local única (ULA) IPv6 para extraer el identificador de red global, que son los 40 bits que siguen inmediatamente 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 al sexto bytes de la dirección.
Detalles | |
---|---|
Devoluciones | 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
Extraiga el IID de una dirección ULA IPv6.
Utilice este método con una dirección local única (ULA) IPv6 para extraer el identificador identificador (IID), que son los 64 bits menos significativos de la dirección.
Detalles | |
---|---|
Devoluciones | Identificador de interfaz de 64 bits, o cero si la dirección IP no es una dirección local única IPv6. |
IsIPv4
bool IsIPv4( void ) const
Pruebe si la dirección es compatible con IPv4.
Utilice este método para verificar si la dirección pertenece a la familia de direcciones IPv4. Tenga en cuenta bien: la dirección no especificada no es una dirección IPv4.
Detalles | |||||
---|---|---|---|---|---|
Valores devueltos |
|
IsIPv4Broadcast
bool IsIPv4Broadcast( void ) const
Pruebe si la dirección es una transmisión IPv4.
Utilice este método para verificar si la dirección es la dirección de transmisión IPv4 de propósito especial.
Detalles | |||||
---|---|---|---|---|---|
Valores devueltos |
|
IsIPv4Multicast
bool IsIPv4Multicast( void ) const
Pruebe si la dirección es de multidifusión IPv4.
Utilice este método para comprobar si la dirección es una dirección de multidifusión IPv4.
Detalles | |||||
---|---|---|---|---|---|
Valores devueltos |
|
IsIPv6
bool IsIPv6( void ) const
Pruebe si la dirección es compatible con IPv6.
Utilice este método para verificar si la dirección pertenece a la familia de direcciones IPv6. Tenga en cuenta que la dirección no especificada no es una dirección IPv6.
Detalles | |||||
---|---|---|---|---|---|
Valores devueltos |
|
IsIPv6GlobalUnicast
bool IsIPv6GlobalUnicast( void ) const
Pruebe si la dirección es una dirección de unidifusión global IPv6.
Utilice este método para verificar si la dirección pertenece a la familia de direcciones IPv6 y tiene el prefijo de dirección de unidifusión global.
Detalles | |||||
---|---|---|---|---|---|
Valores devueltos |
|
IsIPv6LinkLocal
bool IsIPv6LinkLocal( void ) const
Pruebe si la dirección es una dirección local de enlace (LL) IPv6.
Utilice este método para verificar si la dirección pertenece a la familia de direcciones IPv6 y tiene el prefijo de dirección local de enlace IPv6 reservado.
Detalles | |||||
---|---|---|---|---|---|
Valores devueltos |
|
IsIPv6Multicast
bool IsIPv6Multicast( void ) const
Pruebe si la dirección es multidifusión IPv6.
Utilice este método para verificar 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 devueltos |
|
IsIPv6ULA
bool IsIPv6ULA( void ) const
Pruebe si la dirección es una dirección local única (ULA) IPv6.
Utilice este método para verificar si la dirección pertenece a la familia de direcciones IPv6 y tiene el prefijo de dirección local único IPv6 reservado.
Detalles | |||||
---|---|---|---|---|---|
Valores devueltos |
|
IsMulticast
bool IsMulticast( void ) const
Pruebe si la dirección es de multidifusión IPv4 o IPv6.
Utilice este método para comprobar si la dirección pertenece a la familia de direcciones IPv4 o IPv6 y tiene el prefijo de dirección de multidifusión IPv4 o IPv6 reservado.
Detalles | |||||
---|---|---|---|---|---|
Valores devueltos |
|
Subred
uint16_t Subnet( void ) const
Extraiga el identificador de subred de 16 bits de una dirección ULA IPv6.
Utilice este método con una dirección local única (ULA) de IPv6 para extraer el identificador de subred, que son los 16 bits menos significativos del prefijo de red. El prefijo de red es el 64 bits más significativo 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 | |
---|---|
Devoluciones | 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
Extraiga la dirección IPv4 como una estructura de datos de plataforma.
Uso ToIPv4() const
para extraer el contenido como una dirección IPv4, si es posible. Las direcciones IPv6 y la dirección no especificada se extraen como 0.0.0.0
.
El resultado es o bien de tipo struct in_addr
(en POSIX) o ip4_addr_t
(en lwIP).
Detalles | |
---|---|
Devoluciones | La dirección IPv4 encapsulado, o 0.0.0.0 si la dirección es o no especificado o no una dirección IPv4. |
ToIPv4
struct in_addr ToIPv4( void ) const
ToIPv6
ip6_addr_t ToIPv6( void ) const
Extraiga la dirección IPv6 como una estructura de datos de plataforma.
Uso ToIPv6() const
para extraer el contenido como una dirección IPv6, si es posible. Las direcciones IPv4 y la dirección no especificada se extraen como [::]
.
El resultado es o bien de tipo struct in6_addr
(en POSIX) o ip6_addr_t
(en lwIP).
Detalles | |
---|---|
Devoluciones | La dirección IPv4 encapsulado, o [::] if the address is either unspecified or not an IPv4 address. |
ToIPv6
struct in6_addr ToIPv6( void ) const
Encadenar
char * ToString( char *buf, uint32_t bufSize ) const
Emite la dirección IP en formato de presentación de texto convencional.
Uso ToString(char *buf, uint32_t bufSize) const
a escribir la forma de presentación de texto convencional de la dirección IP a la memoria situada en buf
y que se extiende tanto como bufSize
bytes, incluyendo su carácter de terminación NUL.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
Nota Bueno: no es compatible con RFC 5952 en algunas plataformas. Específicamente, la compresión cero no se puede aplicar de acuerdo con la sección 4.2.
Detalles | |
---|---|
Devoluciones | 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.
Utilizar este método para devolver un valor del tipo enumerado IPAddressType
para indicar el tipo de dirección IP.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Valores devueltos |
|
WriteAddress
void WriteAddress( uint8_t *& p ) const
Emite la dirección IP en la representación de red estándar.
Uso WriteAddress(uint8_t *&p)
para codificar la dirección IP en el formato binario definido por el RFC 4291 para las direcciones IPv6. Las direcciones IPv4 se codifican de acuerdo con la sección 2.5.5.1 "Dirección IPv6 compatible con IPv4" (V4COMPAT).
Detalles | |||
---|---|---|---|
Parámetros |
|
operador! =
bool operator!=( const IPAddress & other ) const
Compare esta dirección IP con otra para determinar la desigualdad.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
operador =
IPAddress & operator=( const IPAddress & other )
Operador de asignación convencional.
Detalles | |||
---|---|---|---|
Parámetros |
| ||
Devoluciones | Una referencia a este objeto. |
operador ==
bool operator==( const IPAddress & other ) const
Compare esta dirección IP con otra para verificar la equivalencia.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
Funciones estáticas públicas
Desde IPv4
IPAddress FromIPv4( const ip4_addr_t & addr )
Esta es una función de miembro sobrecargada, proporcionada por conveniencia. Se diferencia de la función anterior solo en los argumentos que acepta.
Desde IPv4
IPAddress FromIPv4( const struct in_addr & addr )
Inyecte la dirección IPv4 de una estructura de datos de plataforma.
Uso FromIPv4(const ip4_addr_t &addr)
para inyectar addr
como una dirección IPv4.
El argumento addr
es o bien de tipo const struct in_addr&
(en POSIX) o const ip4_addr_t&
(en lwIP).
Detalles | |
---|---|
Devoluciones | La dirección IP construida. |
Desde IPv6
IPAddress FromIPv6( const ip6_addr_t & addr )
Esta es una función de miembro sobrecargada, proporcionada por conveniencia. Se diferencia de la función anterior solo en los argumentos que acepta.
Desde IPv6
IPAddress FromIPv6( const struct in6_addr & addr )
Inyecte la dirección IPv6 de una estructura de datos de plataforma.
Uso FromIPv6(const ip6_addr_t &addr)
para inyectar addr
como una dirección IPv6.
El argumento addr
es o bien de tipo const struct in6_addr&
(en POSIX) o const ip6_addr_t&
(en lwIP).
Detalles | |
---|---|
Devoluciones | La dirección IP construida. |
FromSockAddr
IPAddress FromSockAddr( const struct sockaddr & sockaddr )
Inyectar la dirección IPv6 de un POSIX struct sockaddr&
Uso FromSockAddr(const struct sockaddr& sockaddr)
para inyectar sockaddr.sa_addr
como una dirección IPv6.
Detalles | |
---|---|
Devoluciones | La dirección IP construida. |
FromString
bool FromString( const char *str, IPAddress & output )
Escanee la dirección IP de su texto de presentación convencional.
Uso FromString(const char *str, IPAddress& output)
para sobrescribir una dirección IP mediante el escaneo de la presentación del texto convencional situado en str
.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
Detalles | |||||
---|---|---|---|---|---|
Valores devueltos |
|
FromString
bool FromString( const char *str, size_t strLen, IPAddress & output )
Escanee la dirección IP de su texto de presentación convencional.
Uso FromString(const char *str, size_t strLen, IPAddress& output)
para sobrescribir una dirección IP mediante el escaneo de la presentación del texto convencional situado en str
.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
Detalles | |||||
---|---|---|---|---|---|
Valores devueltos |
|
MakeIPv4Broadcast
IPAddress MakeIPv4Broadcast( void )
Construya una dirección de transmisión IPv4.
Detalles | |
---|---|
Devoluciones | 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] )
Construya una dirección de multidifusión IPv6 a partir de sus partes.
Uso MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
para la construcción de una dirección de multidifusión IPv6 con flags
para el encaminamiento de alcance scope
y octetos identificador de grupo groupId
.
Detalles | |
---|---|
Devoluciones | La dirección IP construida. |
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, uint32_t aGroupId )
Construya una dirección de multidifusión IPv6 a partir de sus partes.
Uso MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId)
para la construcción de una dirección de multidifusión IPv6 con flags
para el encaminamiento de alcance scope
y el grupo identificador groupId
.
Detalles | |
---|---|
Devoluciones | La dirección IP construida. |
MakeIPv6PrefixMulticast
IPAddress MakeIPv6PrefixMulticast( uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId )
Construya una dirección de multidifusión IPv6 con prefijo transitorio a partir de sus partes.
Uso MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId)
para la construcción de un transitorio, prefijo IPv6 multicast dirección con para el encaminamiento de alcance scope
y octetos identificador de grupo groupId
, calificado por el prefijo prefix
de longitud prefixlen
bits.
Detalles | |
---|---|
Devoluciones | 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] )
Construya una dirección de multidifusión IPv6 transitoria a partir de sus partes.
Uso MakeIPv6TransientMulticast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
para construir una dirección IPv6 transitoria de multidifusión con flags
para el encaminamiento de alcance scope
y octetos identificador de grupo groupId
.
Detalles | |
---|---|
Devoluciones | La dirección IP construida. |
MakeIPv6WellKnownMulticast
IPAddress MakeIPv6WellKnownMulticast( uint8_t aScope, uint32_t aGroupId )
Construya una dirección de multidifusión IPv6 conocida a partir de sus partes.
Uso MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId)
para la construcción de una dirección de multidifusión IPv6 para el encaminamiento de alcance scope
y el grupo identificador groupId
.
Detalles | |
---|---|
Devoluciones | La dirección IP construida. |
MakeLLA
IPAddress MakeLLA( uint64_t interfaceId )
Construya una dirección local de enlace (LL) IPv6 a partir de su IID.
Uso MakeLLA(uint64_t interfaceId)
para la construcción de una dirección de enlace local IPv6 (LL) con interfaz identificador de interfaceId
.
Detalles | |
---|---|
Devoluciones | La dirección IP construida. |
MakeULA
IPAddress MakeULA( uint64_t globalId, uint16_t subnet, uint64_t interfaceId )
Construya una dirección local única (ULA) IPv6 a partir de sus partes.
Uso MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
para la construcción de una dirección única-local (ULA) con la red global identificador globalId
, subred identificador subnet
y la interfaz de identificador (IID) interfaceId
.
Detalles | |
---|---|
Devoluciones | 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.
Uso ReadAddress(uint8_t *&p, IPAddress &output)
para decodificar la dirección IP en p
al objeto output
.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|