En Google, luchamos por la equidad racial de la comunidad negra. Más información

nl :: Inet :: InterfaceAddressIterator

#include <src/inet/InetInterface.h>

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

Resumen

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

Métodos en una instancia individual de esta clase no son thread-safe; sin embargo, varios subprocesos pueden usar instancias separadas simultáneamente.

En sistemas LwIP de subprocesos múltiples, las instancias son seguras para subprocesos en relación con otros subprocesos que acceden al estado global de LwIP siempre que: 1) otros subprocesos mantengan el bloqueo del núcleo LwIP mientras mutan la lista de netifs; y 2) el objeto netif en sí mismo nunca se destruye.

En los sistemas basados ​​en sockets, la iteración siempre es estable frente a cambios en las interfaces y / o direcciones del sistema subyacente.

En los sistemas LwIP, la iteración es estable excepto en el caso de que se elimine la interfaz asociada con la dirección actual, en cuyo caso la iteración puede terminar prematuramente.

Constructores y Destructores

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

Funciones publicas

GetAddress (void)
Obtenga la dirección de interfaz actual.
GetAddressWithPrefix ( IPPrefix & addrWithPrefix)
void
Devuelve un IPPrefix que contiene la dirección y la longitud del prefijo de la dirección actual.
GetIPv6PrefixLength (void)
uint8_t
Alias obsoletas para GetPrefixLength(void)
GetInterface (void)
InterfaceId
Alias obsoletas para GetInterfaceId(void)
GetInterfaceId (void)
InterfaceId
Devuelve el ID de interfaz de red asociado con la dirección de interfaz actual.
GetInterfaceName (char *nameBuf, size_t nameBufSize)
Obtenga el nombre de la interfaz de red asociada con la dirección de interfaz actual.
GetPrefixLength (void)
uint8_t
Obtiene el prefijo de red asociado con la dirección de interfaz actual.
HasBroadcastAddress (void)
bool
Devuelve 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
Devuelve si la interfaz de red asociada con la dirección de interfaz actual está activa.
Next (void)
bool
Haga avanzar el iterador a la siguiente dirección de interfaz.
SupportsMulticast (void)
bool
Devuelve si la interfaz de red asociada con la dirección de interfaz actual admite multidifusión.

Funciones publicas

GetAddress

IPAddress GetAddress(
  void
)

Obtenga la dirección de interfaz actual.

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

GetAddressWithPrefix

void GetAddressWithPrefix(
  IPPrefix & addrWithPrefix
)

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

GetIPv6PrefixLength

uint8_t GetIPv6PrefixLength(
  void
)

Alias obsoletas para GetPrefixLength(void)

GetInterface

InterfaceId GetInterface(
  void
)

Alias obsoletas para GetInterfaceId(void)

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

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

Detalles
Devoluciones
el ID de interfaz o INET_NULL_INTERFACEID si el iterador se coloca más allá del final de la lista de direcciones.

GetInterfaceName

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

Obtenga el nombre de la interfaz de red asociada con la dirección de 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 memoria para escribir el nombre de la interfaz
[in] nameBufSize
tamaño de la región denotada por nameBuf
Valores devueltos
INET_NO_ERROR
resultado exitoso, 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 está posicionado actualmente en una dirección de interfaz
other
otro error de sistema o plataforma

GetPrefixLength

uint8_t GetPrefixLength(
  void
)

Obtiene el prefijo de red asociado con la dirección de 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
Devoluciones
el prefijo de red (en bits) o 0 si el iterador se coloca más allá del final de la lista de direcciones.

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

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

Detalles
Devoluciones
true si la interfaz tiene una dirección de difusión, false si no, o si el iterador no es colocado en una dirección de interfaz.

HasCurrent

bool HasCurrent(
  void
)

InterfaceAddressIterator

 InterfaceAddressIterator(
  void
)

Construye una InterfaceAddressIterator objeto.

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

Depende

bool IsUp(
  void
)

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

Detalles
Devoluciones
true si la interfaz de red actual es de hasta, false si no, o si el iterador no se coloca en una dirección de interfaz.

próximo

bool Next(
  void
)

Haga avanzar el iterador a la siguiente dirección de 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
Devoluciones
false si avanzado más allá del final, de lo true .

Soporta multidifusión

bool SupportsMulticast(
  void
)

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

Detalles
Devoluciones
true si multicast está soportado, false si no, o si el iterador no se coloca en una dirección de interfaz.

~ InterfaceAddressIterator

 ~InterfaceAddressIterator(
  void
)

Destruye un InterfaceAddressIterator objeto.

Recicla los recursos asignados por el constructor.