nl:: Inet:: InterfaceAddressIterator
#include <src/inet/InetInterface.h>
Itérateur de liste d'adresses IP d'interface réseau système
Résumé
Utilisez des objets de cette classe pour itérer la liste des adresses IP de l'interface réseau du système.
Les méthodes utilisées sur une instance individuelle de cette classe ne sont pas thread-safe. Toutefois, des instances distinctes peuvent être utilisées simultanément par plusieurs threads.
Sur les systèmes LwIP multithread, les instances sont sécurisées par rapport aux autres threads qui accèdent à l'état LwIP global, à condition que: 1) les autres threads conservent le verrouillage de base LwIP tout en modifiant la liste des netifs ; et 2) les objets netifs 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 aux adresses du système sous-jacent.
Sur les systèmes LwIP, l'itération est stable, sauf si 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)
|
Permet d'obtenir l'adresse de l'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 d'interface réseau associé à l'adresse d'interface actuelle.
|
GetInterfaceName(char *nameBuf, size_t nameBufSize)
|
Permet d'obtenir 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 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
Faire avancer l'itérateur à l'adresse d'interface suivante.
|
SupportsMulticast(void)
|
bool
Indique si l'interface réseau associée à l'adresse d'interface actuelle prend en charge la multidiffusion.
|
Fonctions publiques
GetAddress
IPAddress GetAddress( void )
Permet d'obtenir l'adresse de l'interface actuelle.
Détails | |
---|---|
Renvoie |
l'adresse d'interface actuelle ou
IPAddress::Any si l'itérateur est placé 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 d'interface réseau associé à l'adresse d'interface actuelle.
Détails | |
---|---|
Renvoie |
L'ID d'interface ou
INET_NULL_INTERFACEID si l'itérateur est placé au-delà de la fin de la liste d'adresses |
GetInterfaceName
INET_ERROR GetInterfaceName( char *nameBuf, size_t nameBufSize )
Permet d'obtenir 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 de retour |
|
GetPrefixLength
uint8_t GetPrefixLength( void )
Récupère le préfixe 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 placé 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 diffusion, 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 active, false dans le cas contraire, ou si l'itérateur n'est pas placé sur une adresse d'interface. |
Suivant
bool Next( void )
Faire avancer l'itérateur à 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 avancé au-delà de la fin, sinon true . |
SupportsMulticast
bool SupportsMulticast( void )
Indique si l'interface réseau associée à l'adresse d'interface actuelle prend en charge la multidiffusion.
Détails | |
---|---|
Renvoie |
true si la multidiffusion est acceptée, 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.