nl:: Inet:: InterfaceAddressIterator
#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
傳回與目前介面位址相關聯的網路介面 ID。
|
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
傳回與目前介面位址相關聯的網路介面是否支援多點傳播。
|
公開函式
GetAddress
IPAddress GetAddress( void )
GetAddressWithPrefix
void GetAddressWithPrefix( IPPrefix & addrWithPrefix )
傳回 IPPrefix,其中包含目前位址的位址和前置字串長度。
GetInterfaceId
InterfaceId GetInterfaceId( void )
傳回與目前介面位址相關聯的網路介面 ID。
詳細資料 | |
---|---|
傳回 |
介面 ID 或
INET_NULL_INTERFACEID (如果疊代器位於地址清單結尾之外)。 |
GetInterfaceName
INET_ERROR GetInterfaceName( char *nameBuf, size_t nameBufSize )
取得與目前介面位址相關聯的網路介面名稱。
Writes the name of the network interface as \c NUL terminated text string at \c nameBuf.
詳細資料 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||
傳回值 |
|
GetPrefixLength
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。
|
HasBroadcastAddress
bool HasBroadcastAddress( void )
傳回與目前介面位址相關聯的網路介面是否具有 IPv4 廣播位址。
詳細資料 | |
---|---|
傳回 |
如果介面有廣播地址,則為
true ;如果沒有,或疊代器不在介面位址上,則為 false 。 |
HasCurrent
bool HasCurrent( void )
InterfaceAddressIterator
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 。 |
SupportsMulticast
bool SupportsMulticast( void )
傳回與目前介面位址相關聯的網路介面是否支援多點傳播。
詳細資料 | |
---|---|
傳回 |
如果支援多點傳送,則為
true ;如果不支援多點傳送,或者疊代器不在介面位址上,則為 false 。 |
~InterfaceAddressIterator
~InterfaceAddressIterator( void )
刪除 InterfaceAddressIterator 物件。
回收由建構函式配置的任何資源。