нл:: Инет:: ИтераторАдресИнтерфейса
#include <src/inet/InetInterface.h>
Итератор для списка IP-адресов сетевых интерфейсов системы.
Краткое содержание
Используйте объекты этого класса для перебора списка IP-адресов системного сетевого интерфейса.
Методы отдельного экземпляра этого класса не являются потокобезопасными; однако отдельные экземпляры могут использоваться одновременно несколькими потоками.
В многопоточных системах LwIP экземпляры являются потокобезопасными относительно других потоков, обращающихся к глобальному состоянию LwIP, при условии, что: 1) другие потоки удерживают блокировку ядра LwIP при изменении списка нетифов; и 2) сами объекты netif никогда не уничтожаются.
В системах на основе сокетов итерация всегда стабильна при изменении интерфейсов и/или адресов базовой системы.
В системах LwIP итерация стабильна, за исключением случая, когда интерфейс, связанный с текущим адресом, удаляется, и в этом случае итерация может завершиться преждевременно.
Конструкторы и деструкторы | |
---|---|
InterfaceAddressIterator (void) Создает объект InterfaceAddressIterator . | |
~InterfaceAddressIterator (void) Уничтожает объект InterfaceAddressIterator . |
Общественные функции | |
---|---|
GetAddress (void) | Получите текущий адрес интерфейса. |
GetAddressWithPrefix ( IPPrefix & addrWithPrefix) | void Возвращает IPPrefix, содержащий адрес и длину префикса для текущего адреса. |
GetIPv6PrefixLength (void) | uint8_t Устаревший псевдоним для GetPrefixLength(void) |
GetInterface (void) | InterfaceId Устаревший псевдоним для GetInterfaceId(void) |
GetInterfaceId (void) | InterfaceId Возвращает идентификатор сетевого интерфейса, связанный с текущим адресом интерфейса. |
GetInterfaceName (char *nameBuf, size_t nameBufSize) | Получите имя сетевого интерфейса, связанного с текущим адресом интерфейса. |
GetPrefixLength (void) | uint8_t Получает сетевой префикс, связанный с текущим адресом интерфейса. |
HasBroadcastAddress (void) | bool Возвращает, имеет ли сетевой интерфейс, связанный с текущим адресом интерфейса, широковещательный адрес IPv4. |
HasCurrent (void) | bool |
IsUp (void) | bool Возвращает, работает ли сетевой интерфейс, связанный с текущим адресом интерфейса. |
Next (void) | bool Переместить итератор на следующий адрес интерфейса. |
SupportsMulticast (void) | bool Возвращает, поддерживает ли сетевой интерфейс, связанный с текущим адресом интерфейса, многоадресную рассылку. |
Общественные функции
Получить адрес
IPAddress GetAddress( void )
Получите текущий адрес интерфейса.
Подробности | |
---|---|
Возврат | текущий адрес интерфейса или IPAddress::Any , если итератор расположен за концом списка адресов. |
GetAddressWithPrefix
void GetAddressWithPrefix( IPPrefix & addrWithPrefix )
Возвращает IPPrefix, содержащий адрес и длину префикса для текущего адреса.
ПолучитьIPv6PrefixLength
uint8_t GetIPv6PrefixLength( void )
Устаревший псевдоним для GetPrefixLength(void)
Получитьинтерфейсид
InterfaceId GetInterfaceId( void )
Возвращает идентификатор сетевого интерфейса, связанный с текущим адресом интерфейса.
Подробности | |
---|---|
Возврат | идентификатор интерфейса или INET_NULL_INTERFACEID , если итератор расположен за концом списка адресов. |
Получить имя интерфейса
INET_ERROR GetInterfaceName( char *nameBuf, size_t nameBufSize )
Получите имя сетевого интерфейса, связанного с текущим адресом интерфейса.
Writes the name of the network interface as \c NUL terminated text string at \c nameBuf.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возвращаемые значения |
|
Получитьпрефиксдлина
uint8_t GetPrefixLength( void )
Получает сетевой префикс, связанный с текущим адресом интерфейса.
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.
Подробности | |
---|---|
Возврат | сетевой префикс (в битах) или 0, если итератор расположен за концом списка адресов. |
Имеет адрес вещания
bool HasBroadcastAddress( void )
Возвращает, имеет ли сетевой интерфейс, связанный с текущим адресом интерфейса, широковещательный адрес IPv4.
Подробности | |
---|---|
Возврат | true если интерфейс имеет широковещательный адрес, false в противном случае или если итератор не расположен по адресу интерфейса. |
Имеет текущий
bool HasCurrent( void )
Итератор Адреса Интерфейса
InterfaceAddressIterator( void )
Создает объект InterfaceAddressIterator .
Запускает итератор по первому сетевому адресу. На некоторых платформах этот конструктор может выделять ресурсы, переработанные деструктором.
IsUp
bool IsUp( void )
Возвращает, работает ли сетевой интерфейс, связанный с текущим адресом интерфейса.
Подробности | |
---|---|
Возврат | true , если текущий сетевой интерфейс работает, false в противном случае или если итератор не расположен по адресу интерфейса. |
Следующий
bool Next( void )
Переместить итератор на следующий адрес интерфейса.
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.
Подробности | |
---|---|
Возврат | false если продвинулось за конец, иначе true . |
Поддерживает многоадресную рассылку
bool SupportsMulticast( void )
Возвращает, поддерживает ли сетевой интерфейс, связанный с текущим адресом интерфейса, многоадресную рассылку.
Подробности | |
---|---|
Возврат | true , если многоадресная рассылка поддерживается, false , если нет, или если итератор не расположен по адресу интерфейса. |
~InterfaceAddressIterator
~InterfaceAddressIterator( void )
Уничтожает объект InterfaceAddressIterator .
Перерабатывает любые ресурсы, выделенные конструктором.