nl::Inet::InterfaceAddressIterator

#include <src/inet/InetInterface.h>

Iterador para la lista de direcciones IP de la interfaz de red del sistema.

Resumen

Usa objetos de esta clase para iterar la lista de direcciones IP de la interfaz de red del sistema.

Los métodos en una instancia individual de esta clase no son seguros para los subprocesos. Sin embargo, varios subprocesos pueden usar instancias independientes de manera simultánea.

En los sistemas LwIP de varios subprocesos, las instancias son seguras para los subprocesos en relación con otros subprocesos que acceden al estado LwIP global, siempre y cuando: 1) otros subprocesos tengan el bloqueo del núcleo de LwIP mientras mutan la lista de Netifs, y 2) el objeto netif nunca se destruye.

En los sistemas basados en sockets, la iteración es siempre estable ante los cambios en las interfaces o direcciones del sistema subyacente.

En los sistemas LwIP, la iteración es estable, excepto en el caso de que se quite la interfaz asociada con la dirección actual, en cuyo caso la iteración puede finalizar de forma prematura.

Constructores y destructores

InterfaceAddressIterator(void)
Construye un objeto InterfaceAddressIterator.
~InterfaceAddressIterator(void)
Destruye un objeto InterfaceAddressIterator.

Funciones públicas

GetAddress(void)
Obtén la dirección de la interfaz actual.
GetAddressWithPrefix(IPPrefix & addrWithPrefix)
void
Muestra un IPPrefix que contiene la dirección y la longitud de prefijo de la dirección actual.
GetIPv6PrefixLength(void)
uint8_t
Alias obsoleto para GetPrefixLength(void)
GetInterface(void)
InterfaceId
Alias obsoleto para GetInterfaceId(void)
GetInterfaceId(void)
InterfaceId
Muestra el ID de interfaz de red asociado con la dirección de interfaz actual.
GetInterfaceName(char *nameBuf, size_t nameBufSize)
Obtén el nombre de la interfaz de red asociada con la dirección de la interfaz actual.
GetPrefixLength(void)
uint8_t
Obtiene el prefijo de la red asociado con la dirección de la interfaz actual.
HasBroadcastAddress(void)
bool
Muestra si la interfaz de red asociada con la dirección de interfaz actual tiene una dirección de transmisión IPv4.
HasCurrent(void)
bool
IsUp(void)
bool
Muestra si la interfaz de red asociada con la dirección de interfaz actual está activa.
Next(void)
bool
Haz avanzar el iterador a la siguiente dirección de la interfaz.
SupportsMulticast(void)
bool
Muestra si la interfaz de red asociada con la dirección de interfaz actual admite multidifusión.

Funciones públicas

GetAddress

IPAddress GetAddress(
  void
)

Obtén la dirección de la interfaz actual.

Detalles
Qué muestra
la dirección de la interfaz actual o IPAddress::Any si el iterador se posiciona más allá del final de la lista de direcciones.

GetAddressWithPrefix

void GetAddressWithPrefix(
  IPPrefix & addrWithPrefix
)

Muestra un IPPrefix que contiene la dirección y la longitud de prefijo de la dirección actual.

GetIPv6PrefixLength

uint8_t GetIPv6PrefixLength(
  void
)

Alias obsoleto para GetPrefixLength(void)

GetInterface

InterfaceId GetInterface(
  void
)

Alias obsoleto para GetInterfaceId(void)

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

Muestra el ID de interfaz de red asociado con la dirección de interfaz actual.

Detalles
Qué muestra
El ID de la interfaz o INET_NULL_INTERFACEID si el iterador se posiciona más allá del final de la lista de direcciones.

GetInterfaceName

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

Obtén el nombre de la interfaz de red asociada con la dirección de la interfaz actual.

Writes the name of the network interface as \c NUL terminated text string
at \c nameBuf.

Detalles
Parámetros
[in] nameBuf
región de la memoria para escribir el nombre de la interfaz
[in] nameBufSize
tamaño de la región indicado por nameBuf
Valores que se muestran
INET_NO_ERROR
resultado correcto, nombre de la interfaz escrito
INET_ERROR_NO_MEMORY
el nombre es demasiado grande para escribirlo en el búfer
INET_ERROR_INCORRECT_STATE
El iterador no se posiciona en la dirección de una interfaz.
other
otro error del sistema o de la plataforma

GetPrefixLength

uint8_t GetPrefixLength(
  void
)

Obtiene el prefijo de la red asociado con la dirección de la interfaz actual.

On LwIP, this method simply returns the hard-coded constant 64.

Note Well: the standard subnet prefix on all links other than PPP
links is 64 bits. On PPP links and some non-broadcast multipoint access
links, the convention is either 127 bits or 128 bits, but it might be
something else. On most platforms, the system's interface address
structure can represent arbitrary prefix lengths between 0 and 128.

Detalles
Qué muestra
el prefijo de red (en bits) o 0 si el iterador se posiciona más allá del final de la lista de direcciones.

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

Muestra si la interfaz de red asociada con la dirección de interfaz actual tiene una dirección de transmisión IPv4.

Detalles
Qué muestra
true si la interfaz tiene una dirección de emisión, false si no tiene o si el iterador no está posicionado en una dirección de interfaz.

HasCurrent

bool HasCurrent(
  void
)

InterfaceAddressIterator

 InterfaceAddressIterator(
  void
)

Construye un objeto InterfaceAddressIterator.

Inicia el iterador en la primera dirección de red. En algunas plataformas, este constructor puede asignar recursos reciclados por el destructor.

IsUp

bool IsUp(
  void
)

Muestra si la interfaz de red asociada con la dirección de interfaz actual está activa.

Detalles
Qué muestra
true si la interfaz de red actual está activa, false si no está activa o si el iterador no está posicionado en una dirección de interfaz.

Siguiente

bool Next(
  void
)

Haz avanzar el iterador a la siguiente dirección de la interfaz.

Advances the iterator to the next interface address or to a position
beyond the end of the address list.

On LwIP, this method is thread-safe provided that: 1) other threads hold
the LwIP core lock while mutating the netif list; and 2) netif objects
themselves are never destroyed.  Additionally, iteration on LwIP systems
will terminate early if the current interface is removed from the list.

Detalles
Qué muestra
false si se avanza más allá del final; de lo contrario, es true.

SupportsMulticast

bool SupportsMulticast(
  void
)

Muestra si la interfaz de red asociada con la dirección de interfaz actual admite multidifusión.

Detalles
Qué muestra
true si se admite la multidifusión, false si no lo es o si el iterador no está posicionado en una dirección de interfaz.

InterfaceAddressIterator

 ~InterfaceAddressIterator(
  void
)

Destruye un objeto InterfaceAddressIterator.

Recicla los recursos que asignó el constructor.