nl::Inet::InterfaceAddressIterator

#include <src/inet/InetInterface.h>

Zähler für die Liste der IP-Adressen der Systemnetzwerkschnittstellen.

Zusammenfassung

Verwenden Sie Objekte dieser Klasse, um die Liste der IP-Adressen der Systemnetzwerkschnittstellen zu iterieren.

Methoden für eine einzelne Instanz dieser Klasse sind nicht threadsicher. Es können jedoch separate Instanzen gleichzeitig von mehreren Threads verwendet werden.

In Multithread-LwIP-Systemen sind Instanzen threadsicher im Vergleich zu anderen Threads, die auf den globalen LwIP-Status zugreifen, vorausgesetzt, dass: 1) andere Threads die LwIP-Kernsperre beibehalten und die Liste der Netifs mutieren. und 2) Netif-Objekte selbst niemals zerstört werden.

Bei Socket-basierten Systemen ist die Iteration bei Änderungen an den Schnittstellen und/oder Adressen des zugrunde liegenden Systems immer stabil.

In LwIP-Systemen ist die Iteration stabil, außer wenn die mit der aktuellen Adresse verknüpfte Schnittstelle entfernt wird. In diesem Fall kann die Iteration vorzeitig beendet werden.

Konstruktoren und Zerstörer

InterfaceAddressIterator(void)
Konstruiert ein InterfaceAddressIterator-Objekt.
~InterfaceAddressIterator(void)
Zerstört ein Objekt InterfaceAddressIterator.

Ö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 Netzwerkschnittstellen-ID 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-Broadcast-Adresse hat.
HasCurrent(void)
bool
IsUp(void)
bool
Gibt an, ob die mit der aktuellen Schnittstellenadresse verknüpfte Netzwerkschnittstelle aktiv ist.
Next(void)
bool
Mit dem Iterator wird die nächste Schnittstellenadresse erreicht.
SupportsMulticast(void)
bool
Gibt an, ob die Netzwerkschnittstelle, die der aktuellen Schnittstellenadresse zugeordnet ist, 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 sich der Iterator jenseits des Endes der Adressliste befindet.

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)

GetInterface

InterfaceId GetInterface(
  void
)

Eingestellter Alias für GetInterfaceId(void)

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

Gibt die Netzwerkschnittstellen-ID zurück, die der aktuellen Schnittstellenadresse zugeordnet ist.

Details
Rückgabe
Die Schnittstellen-ID oder INET_NULL_INTERFACEID, wenn sich der Iterator jenseits des Endes der Adressliste befindet.

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
[in] nameBuf
Region des Arbeitsspeichers, um den Schnittstellennamen zu schreiben
[in] nameBufSize
Größe der Region, angegeben durch nameBuf
Rückgabewerte
INET_NO_ERROR
erfolgreiches Ergebnis, Schnittstellenname geschrieben
INET_ERROR_NO_MEMORY
Name ist zu groß, um in Puffer geschrieben zu werden
INET_ERROR_INCORRECT_STATE
Der Iterator befindet sich derzeit nicht in einer Schnittstellenadresse.
other
anderer System- oder Plattformfehler

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 Bit) oder 0, wenn sich der Iterator jenseits des Endes der Adressenliste befindet.

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

Gibt zurück, ob die mit der aktuellen Schnittstellenadresse verknüpfte Netzwerkschnittstelle eine IPv4-Broadcast-Adresse hat.

Details
Rückgabe
true, wenn die Schnittstelle eine Übertragungsadresse hat, andernfalls false oder wenn sich der Iterator nicht an einer Schnittstellenadresse befindet.

HasCurrent

bool HasCurrent(
  void
)

InterfaceAddressIterator

 InterfaceAddressIterator(
  void
)

Konstruiert ein InterfaceAddressIterator-Objekt.

Startet den Iterator an der ersten Netzwerkadresse. Auf einigen Plattformen kann dieser Konstruktor Ressourcen zuweisen, die vom Destruktor recycelt wurden.

IsUp

bool IsUp(
  void
)

Gibt an, 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 Iterator nicht an einer Schnittstellenadresse befindet.

Weiter

bool Next(
  void
)

Mit dem Iterator wird die nächste Schnittstellenadresse erreicht.

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 bei erweitertem Zugriff über das Ende hinaus, andernfalls true.

SupportsMulticast

bool SupportsMulticast(
  void
)

Gibt an, ob die Netzwerkschnittstelle, die der aktuellen Schnittstellenadresse zugeordnet ist, Multicast unterstützt.

Details
Rückgabe
true, wenn Multicast unterstützt wird, false, wenn nicht, oder wenn sich der Iterator nicht an einer Schnittstellenadresse befindet.

~InterfaceAddressIterator

 ~InterfaceAddressIterator(
  void
)

Zerstört ein Objekt InterfaceAddressIterator.

Recycelt alle vom Konstruktor zugewiesenen Ressourcen.