Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

nl::Inet::InterfaceAddressIterator

#include <src/inet/InetInterface.h>

システム ネットワーク インターフェースの IP アドレスリストのイテレータ。

まとめ

このクラスのオブジェクトを使用して、システム ネットワーク インターフェース インターフェースの IP アドレスのリストを反復処理します。

このクラスの個々のインスタンスのメソッドはスレッドセーフではありません。ただし、個別のインスタンスが複数のスレッドで同時に使用されることがあります。

マルチスレッド LwIP システムでは、インスタンスは、グローバル LwIP 状態にアクセスする他のスレッドと比べてスレッドセーフです。1)他のスレッドが netifs のリストを変更しながら 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
)

現在のインターフェース アドレスを取得します。

詳細
戻り値
現在のインターフェース アドレス、またはイテレータがアドレスリストの末尾を超える場合は IPAddress::Any

GetAddressWithPrefix

void GetAddressWithPrefix(
  IPPrefix & addrWithPrefix
)

現在のアドレスのアドレスとプレフィックスの長さを含む IPPrefix を返します。

GetIPv6PrefixLength

uint8_t GetIPv6PrefixLength(
  void
)

GetPrefixLength(void) のエイリアスのサポートが終了しました

GetInterface

InterfaceId GetInterface(
  void
)

GetInterfaceId(void) のエイリアスのサポートが終了しました

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.

詳細
パラメータ
[in] nameBuf
インターフェース名を書き込むメモリ領域
[in] nameBufSize
nameBuf で示されるリージョンのサイズ
戻り値
INET_NO_ERROR
成功した結果、インターフェース名が書き込まれた
INET_ERROR_NO_MEMORY
名前が大きすぎてバッファに書き込めません
INET_ERROR_INCORRECT_STATE
現在、イテレータはインターフェース アドレスに配置されていません
other
別のシステムまたはプラットフォーム エラー

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、またはイテレータがインターフェース アドレスに配置されていない場合。

カレント

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 です。

マルチキャスト対応

bool SupportsMulticast(
  void
)

現在のインターフェース アドレスに関連付けられたネットワーク インターフェースがマルチキャストをサポートしているかどうかを返します。

詳細
戻り値
マルチキャストがサポートされている場合は true、サポートされていない場合は false、イテレータがインターフェース アドレスに配置されていない場合。

InterfaceAddressIterator

 ~InterfaceAddressIterator(
  void
)

InterfaceAddressIterator オブジェクトを破棄します。

コンストラクタによって割り当てられたリソースをリサイクルします。