nl:: Inet:: InterfaceAddressIterator
#include <src/inet/InetInterface.h>
Iterator für die Liste der IP-Adressen der Systemnetzwerkschnittstelle.
Zusammenfassung
Verwenden Sie Objekte dieser Klasse, um die Liste der IP-Adressen der Systemnetzwerkschnittstelle zu iterieren.
Methoden für eine einzelne Instanz dieser Klasse sind nicht Thread-sicher. Separate Instanzen können jedoch gleichzeitig von mehreren Threads verwendet werden.
Auf Multi-Threaded-LwIP-Systemen sind Instanzen im Vergleich zu anderen Threads, die auf den globalen LwIP-Status zugreifen, Thread-sicher, unter der Voraussetzung, dass 1) andere Threads die LwIP-Kernsperre besitzen, während die Liste der Netifs verändert wird, und 2) das Netif-Objekt selbst nie gelöscht wird.
Auf Socket-basierten Systemen ist die Iteration bei Änderungen an den Schnittstellen und/oder Adressen des zugrunde liegenden Systems immer stabil.
Auf LwIP-Systemen ist die Iteration stabil, es sei denn, die Schnittstelle, die der aktuellen Adresse zugeordnet ist, wird entfernt. In diesem Fall kann die Iteration vorzeitig beendet werden.
Konstruktoren und Zerstörer |
|
---|---|
InterfaceAddressIterator(void)
Erstellt ein InterfaceAddressIterator-Objekt.
|
|
~InterfaceAddressIterator(void)
Zerstört ein InterfaceAddressIterator-Objekt.
|
Öffentliche Funktionen |
|
---|---|
GetAddress(void)
|
Rufen Sie die aktuelle Schnittstellenadresse ab.
|
GetAddressWithPrefix(IPPrefix & addrWithPrefix)
|
void
Gibt ein IPPrefix zurück, das die Adresse und Präfixlänge der aktuellen Adresse enthält.
|
GetIPv6PrefixLength(void)
|
uint8_t
Eingestellter Alias für
GetPrefixLength(void) |
GetInterface(void)
|
InterfaceId
Eingestellter Alias für
GetInterfaceId(void) |
GetInterfaceId(void)
|
InterfaceId
Gibt die ID der Netzwerkschnittstelle zurück, die der aktuellen Schnittstellenadresse zugeordnet ist.
|
GetInterfaceName(char *nameBuf, size_t nameBufSize)
|
Ruft den Namen der Netzwerkschnittstelle ab, die der aktuellen Schnittstellenadresse zugeordnet ist.
|
GetPrefixLength(void)
|
uint8_t
Ruft das Netzwerkpräfix ab, das der aktuellen Schnittstellenadresse zugeordnet ist.
|
HasBroadcastAddress(void)
|
bool
Gibt zurück, ob die mit der aktuellen Schnittstellenadresse verknüpfte Netzwerkschnittstelle eine IPv4-Broadcastadresse hat.
|
HasCurrent(void)
|
bool
|
IsUp(void)
|
bool
Gibt zurück, ob die mit der aktuellen Schnittstellenadresse verknüpfte Netzwerkschnittstelle aktiv ist.
|
Next(void)
|
bool
Setzt den Iterator zur nächsten Schnittstellenadresse fort.
|
SupportsMulticast(void)
|
bool
Gibt zurück, ob die mit der aktuellen Schnittstellenadresse verknüpfte Netzwerkschnittstelle Multicast unterstützt.
|
Öffentliche Funktionen
GetAddress
IPAddress GetAddress( void )
Rufen Sie die aktuelle Schnittstellenadresse ab.
Details | |
---|---|
Rückgabe |
Die aktuelle Schnittstellenadresse oder
IPAddress::Any , wenn der Iteration über das Ende der Adressenliste liegt. |
GetAddressWithPrefix
void GetAddressWithPrefix( IPPrefix & addrWithPrefix )
Gibt ein IPPrefix zurück, das die Adresse und Präfixlänge der aktuellen Adresse enthält.
GetIPv6PrefixLength
uint8_t GetIPv6PrefixLength( void )
Eingestellter Alias für GetPrefixLength(void)
GetInterfaceId
InterfaceId GetInterfaceId( void )
Gibt die ID der Netzwerkschnittstelle zurück, die der aktuellen Schnittstellenadresse zugeordnet ist.
Details | |
---|---|
Rückgabe |
Die Schnittstellen-ID oder
INET_NULL_INTERFACEID , wenn der Iteration über das Ende der Adressenliste liegt |
GetInterfaceName
INET_ERROR GetInterfaceName( char *nameBuf, size_t nameBufSize )
Ruft den Namen der Netzwerkschnittstelle ab, die der aktuellen Schnittstellenadresse zugeordnet ist.
Writes the name of the network interface as \c NUL terminated text string at \c nameBuf.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
GetPrefixLength
uint8_t GetPrefixLength( void )
Ruft das Netzwerkpräfix ab, das der aktuellen Schnittstellenadresse zugeordnet ist.
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.
Details | |
---|---|
Rückgabe |
das Netzwerkpräfix (in Bits) oder 0, wenn sich der Iteration jenseits des Endes der Adressenliste befindet
|
HasBroadcastAddress
bool HasBroadcastAddress( void )
Gibt zurück, ob die mit der aktuellen Schnittstellenadresse verknüpfte Netzwerkschnittstelle eine IPv4-Broadcastadresse hat.
Details | |
---|---|
Rückgabe |
true , wenn die Schnittstelle eine Broadcastadresse hat, false , wenn nicht, oder wenn der Iteration nicht in einer Schnittstellenadresse positioniert ist |
HasCurrent
bool HasCurrent( void )
InterfaceAddressIterator
InterfaceAddressIterator( void )
Erstellt ein InterfaceAddressIterator-Objekt.
Startet den Iterator bei der ersten Netzwerkadresse. Auf einigen Plattformen weist dieser Konstruktor möglicherweise Ressourcen zu, die vom Destruktor recycelt wurden.
IsUp
bool IsUp( void )
Gibt zurück, ob die mit der aktuellen Schnittstellenadresse verknüpfte Netzwerkschnittstelle aktiv ist.
Details | |
---|---|
Rückgabe |
true , wenn die aktuelle Netzwerkschnittstelle aktiv ist, false , wenn nicht, oder wenn sich der Iteration nicht an einer Schnittstellenadresse befindet. |
Weiter
bool Next( void )
Setzt den Iterator zur nächsten Schnittstellenadresse fort.
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.
Details | |
---|---|
Rückgabe |
false , wenn sie über das Ende hinausgehen, andernfalls true . |
SupportsMulticast
bool SupportsMulticast( void )
Gibt zurück, ob die mit der aktuellen Schnittstellenadresse verknüpfte Netzwerkschnittstelle Multicast unterstützt.
Details | |
---|---|
Rückgabe |
true , wenn Multicast unterstützt wird, false , wenn nicht, oder wenn sich der Iteration nicht an einer Schnittstellenadresse befindet. |
~InterfaceAddressIterator
~InterfaceAddressIterator( void )
Zerstört ein InterfaceAddressIterator-Objekt.
Verwendet alle vom Konstruktor zugewiesenen Ressourcen wieder.