nl:: Inet:: InterfaceAddressIterator
#include <src/inet/InetInterface.h>
Itérateur pour la liste des adresses IP de l'interface réseau du système
Résumé
Utilisez les objets de cette classe pour itérer la liste des adresses IP des interfaces réseau du système.
Les méthodes appliquées à une instance individuelle de cette classe ne sont pas thread-safe. mais des instances distinctes peuvent être utilisées simultanément par plusieurs threads.
Sur les systèmes LwIP multithread, les instances sont thread-safe par rapport aux autres threads qui accèdent à l'état LwIP global, à condition que: 1) les autres threads conservent le verrou de base LwIP tout en mutant la liste des nétifs ; et 2) l'objet nétif eux-mêmes ne sont jamais détruits.
Sur les systèmes basés sur des sockets, l'itération est toujours stable face aux modifications apportées aux interfaces et/ou adresses du système sous-jacent.
Sur les systèmes LwIP, l'itération est stable, sauf dans le cas où l'interface associée à l'adresse actuelle est supprimée, auquel cas l'itération peut se terminer prématurément.
Constructeurs et destructeurs |
|
---|---|
InterfaceAddressIterator(void)
Construit un objet InterfaceAddressIterator.
|
|
~InterfaceAddressIterator(void)
Détruit un objet InterfaceAddressIterator.
|
Fonctions publiques |
|
---|---|
GetAddress(void)
|
Obtenez l'adresse d'interface actuelle.
|
GetAddressWithPrefix(IPPrefix & addrWithPrefix)
|
void
Renvoie un IPPrefix contenant l'adresse et la longueur du préfixe de l'adresse actuelle.
|
GetIPv6PrefixLength(void)
|
uint8_t
Alias obsolète pour
GetPrefixLength(void) |
GetInterface(void)
|
InterfaceId
Alias obsolète pour
GetInterfaceId(void) |
GetInterfaceId(void)
|
InterfaceId
Renvoie l'ID de l'interface réseau associé à l'adresse actuelle de l'interface.
|
GetInterfaceName(char *nameBuf, size_t nameBufSize)
|
Obtenez le nom de l'interface réseau associée à l'adresse actuelle de l'interface.
|
GetPrefixLength(void)
|
uint8_t
Récupère le préfixe de réseau associé à l'adresse d'interface actuelle.
|
HasBroadcastAddress(void)
|
bool
Indique si l'interface réseau associée à l'adresse d'interface actuelle possède une adresse de diffusion IPv4.
|
HasCurrent(void)
|
bool
|
IsUp(void)
|
bool
Indique si l'interface réseau associée à l'adresse d'interface actuelle est opérationnelle.
|
Next(void)
|
bool
Faites avancer l'itérateur jusqu'à l'adresse d'interface suivante.
|
SupportsMulticast(void)
|
bool
Indique si l'interface réseau associée à l'adresse d'interface actuelle est compatible avec la multidiffusion.
|
Fonctions publiques
GetAddress
IPAddress GetAddress( void )
Obtenez l'adresse d'interface actuelle.
Détails | |
---|---|
Renvoie |
l'adresse d'interface actuelle ou
IPAddress::Any si l'itérateur est positionné au-delà de la fin de la liste d'adresses. |
GetAddressWithPrefix
void GetAddressWithPrefix( IPPrefix & addrWithPrefix )
Renvoie un IPPrefix contenant l'adresse et la longueur du préfixe de l'adresse actuelle.
GetInterfaceId
InterfaceId GetInterfaceId( void )
Renvoie l'ID de l'interface réseau associé à l'adresse actuelle de l'interface.
Détails | |
---|---|
Renvoie |
ID d'interface ou
INET_NULL_INTERFACEID si l'itérateur est positionné au-delà de la fin de la liste d'adresses |
GetInterfaceName
INET_ERROR GetInterfaceName( char *nameBuf, size_t nameBufSize )
Obtenez le nom de l'interface réseau associée à l'adresse actuelle de l'interface.
Writes the name of the network interface as \c NUL terminated text string at \c nameBuf.
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs renvoyées |
|
GetPrefixLength
uint8_t GetPrefixLength( void )
Récupère le préfixe de réseau associé à l'adresse d'interface actuelle.
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.
Détails | |
---|---|
Renvoie |
le préfixe réseau (en bits) ou 0 si l'itérateur est positionné au-delà de la fin de la liste d'adresses.
|
HasBroadcastAddress
bool HasBroadcastAddress( void )
Indique si l'interface réseau associée à l'adresse d'interface actuelle possède une adresse de diffusion IPv4.
Détails | |
---|---|
Renvoie |
true si l'interface possède une adresse de broadcast, false dans le cas contraire ou si l'itérateur n'est pas placé sur une adresse d'interface. |
HasCurrent
bool HasCurrent( void )
InterfaceAddressIterator
InterfaceAddressIterator( void )
Construit un objet InterfaceAddressIterator.
Démarre l'itérateur à la première adresse réseau. Sur certaines plates-formes, ce constructeur peut allouer des ressources recyclées par le destructeur.
IsUp
bool IsUp( void )
Indique si l'interface réseau associée à l'adresse d'interface actuelle est opérationnelle.
Détails | |
---|---|
Renvoie |
true si l'interface réseau actuelle est opérationnelle, false dans le cas contraire, ou si l'itérateur n'est pas placé sur une adresse d'interface. |
Suivant
bool Next( void )
Faites avancer l'itérateur jusqu'à l'adresse d'interface suivante.
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.
Détails | |
---|---|
Renvoie |
false si elle est avancée au-delà de la fin, sinon true . |
SupportsMulticast
bool SupportsMulticast( void )
Indique si l'interface réseau associée à l'adresse d'interface actuelle est compatible avec la multidiffusion.
Détails | |
---|---|
Renvoie |
true si la multidiffusion est compatible, false dans le cas contraire, ou si l'itérateur n'est pas placé sur une adresse d'interface. |
~InterfaceAddressIterator
~InterfaceAddressIterator( void )
Détruit un objet InterfaceAddressIterator.
Recycle toutes les ressources allouées par le constructeur.