nl :: Inet :: InterfaceAddressIterator
#include <src/inet/InetInterface.h>
Iterador para a lista de endereços IP da interface de rede do sistema.
Resumo
Use objetos desta classe para iterar a lista de endereços IP da interface de rede do sistema.
Os métodos em uma instância individual desta classe não são seguros para threads; no entanto, instâncias separadas podem ser usadas simultaneamente por vários threads.
Em sistemas LwIP multi-threaded, as instâncias são thread-safe em relação a outras threads que acessam o estado LwIP global, desde que: 1) outras threads mantenham o bloqueio do núcleo LwIP enquanto modificam a lista de netifs; e 2) os próprios objetos netif nunca são destruídos.
Em sistemas baseados em soquetes, a iteração é sempre estável em face de alterações nas interfaces e / ou endereços do sistema subjacente.
Em sistemas LwIP, a iteração é estável, exceto no caso em que a interface associada ao endereço atual é removida, caso em que a iteração pode terminar prematuramente.
Construtores e Destruidores | |
---|---|
InterfaceAddressIterator (void) Constrói um objeto InterfaceAddressIterator . | |
~InterfaceAddressIterator (void) Destrói um objeto InterfaceAddressIterator . |
Funções públicas | |
---|---|
GetAddress (void) | Obtenha o endereço da interface atual. |
GetAddressWithPrefix ( IPPrefix & addrWithPrefix) | void Retorna um IPPrefix contendo o endereço e o comprimento do prefixo do endereço atual. |
GetIPv6PrefixLength (void) | uint8_t Alias obsoleto para GetPrefixLength(void) |
GetInterface (void) | InterfaceId Alias obsoleto para GetInterfaceId(void) |
GetInterfaceId (void) | InterfaceId Retorna a ID da interface de rede associada ao endereço da interface atual. |
GetInterfaceName (char *nameBuf, size_t nameBufSize) | Obtenha o nome da interface de rede associada ao endereço da interface atual. |
GetPrefixLength (void) | uint8_t Obtém o prefixo de rede associado ao endereço da interface atual. |
HasBroadcastAddress (void) | bool Retorna se a interface de rede associada ao endereço de interface atual possui um endereço de difusão IPv4. |
HasCurrent (void) | bool |
IsUp (void) | bool Retorna se a interface de rede associada ao endereço da interface atual está ativa. |
Next (void) | bool Avance o iterador para o próximo endereço de interface. |
SupportsMulticast (void) | bool Retorna se a interface de rede associada ao endereço da interface atual oferece suporte a multicast. |
Funções públicas
GetAddress
IPAddress GetAddress( void )
Obtenha o endereço da interface atual.
Detalhes | |
---|---|
Devoluções | o endereço da interface atual ou IPAddress::Any se o iterador estiver posicionado além do final da lista de endereços. |
GetAddressWithPrefix
void GetAddressWithPrefix( IPPrefix & addrWithPrefix )
Retorna um IPPrefix contendo o endereço e o comprimento do prefixo do endereço atual.
GetInterfaceId
InterfaceId GetInterfaceId( void )
Retorna a ID da interface de rede associada ao endereço da interface atual.
Detalhes | |
---|---|
Devoluções | o id da interface ou INET_NULL_INTERFACEID se o iterador estiver posicionado além do final da lista de endereços. |
GetInterfaceName
INET_ERROR GetInterfaceName( char *nameBuf, size_t nameBufSize )
Obtenha o nome da interface de rede associada ao endereço da interface atual.
Writes the name of the network interface as \c NUL terminated text string at \c nameBuf.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||||
Valores Retornados |
|
GetPrefixLength
uint8_t GetPrefixLength( void )
Obtém o prefixo de rede associado ao endereço da interface atual.
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.
Detalhes | |
---|---|
Devoluções | o prefixo de rede (em bits) ou 0 se o iterador estiver posicionado além do final da lista de endereços. |
HasBroadcastAddress
bool HasBroadcastAddress( void )
Retorna se a interface de rede associada ao endereço de interface atual possui um endereço de transmissão IPv4.
Detalhes | |
---|---|
Devoluções | true se a interface tem um endereço de broadcast, false se não, ou se o iterador não está posicionado em um endereço de interface. |
HasCurrent
bool HasCurrent( void )
InterfaceAddressIterator
InterfaceAddressIterator( void )
Constrói um objeto InterfaceAddressIterator .
Inicia o iterador no primeiro endereço de rede. Em algumas plataformas, esse construtor pode alocar recursos reciclados pelo destruidor.
É acima
bool IsUp( void )
Retorna se a interface de rede associada ao endereço da interface atual está ativa.
Detalhes | |
---|---|
Devoluções | true se a interface de rede atual estiver ativa, false se não estiver, ou se o iterador não estiver posicionado em um endereço de interface. |
Próximo
bool Next( void )
Avance o iterador para o próximo endereço de interface.
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.
Detalhes | |
---|---|
Devoluções | false se avançado além do fim, caso contrário, true . |
Suporta Multicast
bool SupportsMulticast( void )
Retorna se a interface de rede associada ao endereço da interface atual oferece suporte a multicast.
Detalhes | |
---|---|
Devoluções | true se multicast for suportado, false se não for, ou se o iterador não estiver posicionado em um endereço de interface. |
~ InterfaceAddressIterator
~InterfaceAddressIterator( void )
Destrói um objeto InterfaceAddressIterator .
Recicla todos os recursos alocados pelo construtor.