nl::
  #include <src/inet/IPAddress.h>
  インターネット プロトコル アドレス。
概要
Nest Inet Layer は、このクラスのオブジェクトを使用して、(プロトコルのバージョンに依存しない)インターネット プロトコル アドレスを表します。
| パブリック属性 | |
|---|---|
| Addr[4] | uint32_t(プロトコルのバージョンに依存しない)IP アドレスを含む不透明な単語配列 | 
| 公開静的属性 | |
|---|---|
| Any | 識別された未指定の IP アドレス オブジェクト。 | 
| パブリック関数 | |
|---|---|
| GlobalId(void) const  | uint64_tIPv6 ULA アドレスの 16 ビットのグローバル ネットワーク識別子を抽出します。 | 
| InterfaceId(void) const  | uint64_tIPv6 ULA アドレスの IID を抽出します。 | 
| IsIPv4(void) const  | boolアドレスが IPv4 と互換性があるかどうかをテストします。 | 
| IsIPv4Broadcast(void) const  | boolアドレスが IPv4 ブロードキャストかどうかをテストします。 | 
| IsIPv4Multicast(void) const  | boolアドレスが IPv4 マルチキャストかどうかをテストします。 | 
| IsIPv6(void) const  | boolアドレスが IPv6 と互換性があるかどうかをテストします。 | 
| IsIPv6GlobalUnicast(void) const  | boolアドレスが IPv6 グローバル ユニキャスト アドレスかどうかをテストします。 | 
| IsIPv6LinkLocal(void) const  | boolアドレスが IPv6 リンクローカル アドレス(LL)であるかどうかをテストします。 | 
| IsIPv6Multicast(void) const  | boolアドレスが IPv6 マルチキャストかどうかをテストします。 | 
| IsIPv6ULA(void) const  | boolアドレスが IPv6 のユニーク ローカル アドレス(ULA)かどうかをテストします。 | 
| IsMulticast(void) const  | boolアドレスが IPv4 または IPv6 マルチキャストのいずれであるかをテストします。 | 
| Subnet(void) const  | uint16_tIPv6 ULA アドレスの 16 ビットのサブネット識別子を抽出します。 | 
| ToIPv4(void) const  | IPv4 アドレスをプラットフォーム データ構造として抽出します。 | 
| ToIPv4(void) const  | struct in_addr | 
| ToIPv6(void) const  | ip6_addr_tIPv6 アドレスをプラットフォーム データ構造として抽出します。 | 
| ToIPv6(void) const  | struct in6_addr | 
| ToString(char *buf, uint32_t bufSize) const  | char *従来のテキスト表示形式で IP アドレスを出力します。 | 
| Type(void) const  | IPAddressTypeIP アドレスのタイプを抽出します。 | 
| WriteAddress(uint8_t *& p) const  | void標準的なネットワーク表現で IP アドレスを出力する。 | 
| operator!=(const IPAddress & other) const  | boolこの IP アドレスを他の IP アドレスと比較し、等しくないかどうかを確認します。 | 
| operator=(const IPAddress & other) | 従来の代入演算子。 | 
| operator==(const IPAddress & other) const  | boolこの IP アドレスを別の IP アドレスと比較します。 | 
| 静的パブリック関数 | |
|---|---|
| FromIPv4(const ip4_addr_t & addr) | |
| FromIPv4(const struct in_addr & addr) | プラットフォーム データ構造から IPv4 アドレスを挿入します。 | 
| FromIPv6(const ip6_addr_t & addr) | |
| FromIPv6(const struct in6_addr & addr) | プラットフォーム データ構造から IPv6 アドレスを挿入します。 | 
| FromSockAddr(const struct sockaddr & sockaddr) | POSIX  struct sockaddr&から IPv6 アドレスを注入する | 
| FromString(const char *str, IPAddress & output) | bool通常のプレゼンテーション テキストから IP アドレスをスキャンします。 | 
| FromString(const char *str, size_t strLen, IPAddress & output) | bool通常のプレゼンテーション テキストから IP アドレスをスキャンします。 | 
| MakeIPv4Broadcast(void) | IPv4 ブロードキャスト アドレスを作成します。 | 
| MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES]) | 各部分から IPv6 マルチキャスト アドレスを構築します。 | 
| MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, uint32_t aGroupId) | 各部分から IPv6 マルチキャスト アドレスを構築します。 | 
| MakeIPv6PrefixMulticast(uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId) | 一時的な接頭辞 IPv6 マルチキャスト アドレスを各部分から構築します。 | 
| MakeIPv6TransientMulticast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES]) | 一時的な IPv6 マルチキャスト アドレスをそのパーツから構築する。 | 
| MakeIPv6WellKnownMulticast(uint8_t aScope, uint32_t aGroupId) | 既知の IPv6 マルチキャスト アドレスをその部分から構築する。 | 
| MakeLLA(uint64_t interfaceId) | その IID から IPv6 リンクローカルアドレス(LL)を構築します。 | 
| MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId) | 各部分から IPv6 のユニーク ローカル アドレス(ULA)を構築する。 | 
| ReadAddress(const uint8_t *& p, IPAddress & output) | void標準的なネットワーク表現で IP アドレスを出力する。 | 
パブリック属性
Addr
uint32_t Addr[4]
(プロトコルのバージョンに依存しない)IP アドレスを含む不透明な単語配列
IPv6 アドレスは、すべての 128 ビットを、4 つの 32 ビットネットワークバイト順序付き符号なし整数に分割します。IPv4 アドレスは V4COMPAT です。つまり、最初の 3 つのワードはゼロで、4 番目のワードにはネットワーク バイト順で IPv4 アドレスが含まれています。
公開静的属性
すべて
IPAddress Any
識別された未指定の IP アドレス オブジェクト。
このオブジェクトは、等価比較で定数として使用されます。Google Nest レイヤのユーザーが変更することはできません。
パブリック関数
GlobalId
uint64_t GlobalId( void ) const
IPv6 ULA アドレスの 16 ビットのグローバル ネットワーク識別子を抽出します。
この方法を IPv6 のユニーク ローカル アドレス(ULA)とともに使用して、グローバル ネットワーク識別子を抽出します。これは、識別された ULA ネットワーク プレフィックスの直後の 40 ビット、つまり fd00::/8 です。言い換えると、グローバル・ネットワーク識別子は、アドレスの 2 バイト目から 6 バイト目までの 5 バイトに配置される。
| 詳細 | |
|---|---|
| 戻り値 | 40 ビットのグローバル ネットワーク識別子。IP アドレスが IPv6 の一意のローカル アドレスでない場合はゼロ。 | 
InterfaceId
uint64_t InterfaceId( void ) const
IPv6 ULA アドレスの IID を抽出します。
このメソッドを IPv6 のユニーク ローカル アドレス(ULA)とともに使用して、識別子識別子(IID)を抽出します。IID は、アドレスの最下位 64 ビットです。
| 詳細 | |
|---|---|
| 戻り値 | 64 ビットのインターフェース識別子。IP アドレスが IPv6 の一意のローカル アドレスでない場合はゼロ。 | 
IsIPv4
bool IsIPv4( void ) const
アドレスが IPv4 と互換性があるかどうかをテストします。
このメソッドを使用して、アドレスが IPv4 アドレス ファミリーに属しているかどうかを確認します。注:指定されていないアドレスは IPv4 アドレスではありません。
| 詳細 | |||||
|---|---|---|---|---|---|
| 戻り値 | 
 | ||||
IsIPv4Broadcast
bool IsIPv4Broadcast( void ) const
アドレスが IPv4 ブロードキャストかどうかをテストします。
このメソッドを使用して、アドレスが特殊目的の IPv4 ブロードキャスト アドレスかどうかを確認します。
| 詳細 | |||||
|---|---|---|---|---|---|
| 戻り値 | 
 | ||||
IsIPv4Multicast
bool IsIPv4Multicast( void ) const
アドレスが IPv4 マルチキャストかどうかをテストします。
このメソッドを使用して、アドレスが IPv4 マルチキャスト アドレスかどうかを確認します。
| 詳細 | |||||
|---|---|---|---|---|---|
| 戻り値 | 
 | ||||
IsIPv6
bool IsIPv6( void ) const
アドレスが IPv6 と互換性があるかどうかをテストします。
このメソッドを使用して、アドレスが IPv6 アドレス ファミリーに属しているかどうかを確認します。注:指定されていないアドレスは IPv6 アドレスではありません。
| 詳細 | |||||
|---|---|---|---|---|---|
| 戻り値 | 
 | ||||
IsIPv6GlobalUnicast
bool IsIPv6GlobalUnicast( void ) const
アドレスが IPv6 グローバル ユニキャスト アドレスかどうかをテストします。
この方法では、アドレスが IPv6 アドレス ファミリーに属し、グローバル ユニキャスト アドレスの接頭辞があるかどうかを確認します。
| 詳細 | |||||
|---|---|---|---|---|---|
| 戻り値 | 
 | ||||
IsIPv6LinkLocal
bool IsIPv6LinkLocal( void ) const
アドレスが IPv6 リンクローカル アドレス(LL)であるかどうかをテストします。
このメソッドを使用して、アドレスが IPv6 アドレス ファミリーに属し、予約済みの IPv6 リンクローカル アドレスの接頭辞があるかどうかを確認します。
| 詳細 | |||||
|---|---|---|---|---|---|
| 戻り値 | 
 | ||||
IsIPv6Multicast
bool IsIPv6Multicast( void ) const
アドレスが IPv6 マルチキャストかどうかをテストします。
このメソッドを使用して、アドレスが IPv6 アドレス ファミリーに属し、予約済みの IPv6 マルチキャスト アドレスの接頭辞があるかどうかを確認します。
| 詳細 | |||||
|---|---|---|---|---|---|
| 戻り値 | 
 | ||||
IsIPv6ULA
bool IsIPv6ULA( void ) const
アドレスが IPv6 のユニーク ローカル アドレス(ULA)かどうかをテストします。
このメソッドを使用して、アドレスが IPv6 アドレス ファミリーに属し、予約済みの IPv6 の一意のローカル アドレス接頭辞があるかどうかを確認します。
| 詳細 | |||||
|---|---|---|---|---|---|
| 戻り値 | 
 | ||||
IsMulticast
bool IsMulticast( void ) const
アドレスが IPv4 または IPv6 マルチキャストのいずれであるかをテストします。
このメソッドを使用して、アドレスが IPv4 または IPv6 のアドレス ファミリーに属し、予約済みの IPv4 または IPv6 マルチキャスト アドレスの接頭辞があるかどうかを確認します。
| 詳細 | |||||
|---|---|---|---|---|---|
| 戻り値 | 
 | ||||
サブネット
uint16_t Subnet( void ) const
IPv6 ULA アドレスの 16 ビットのサブネット識別子を抽出します。
この方法を IPv6 のユニーク ローカル アドレス(ULA)とともに使用して、ネットワーク プレフィックスの最下位 16 ビットであるサブネット識別子を抽出します。ネットワーク接頭辞はアドレスの最上位 64 ビットです。言い換えると、サブネット識別子は、16 バイトのアドレスの 7 バイト目と 8 バイト目に配置される。
| 詳細 | |
|---|---|
| 戻り値 | 16 ビットのサブネット識別子。IP アドレスが IPv6 の一意のローカル アドレスでない場合はゼロ。 | 
ToIPv4
ip4_addr_t ToIPv4( void ) const
IPv4 アドレスをプラットフォーム データ構造として抽出します。
可能であれば、ToIPv4() const を使用して、コンテンツを IPv4 アドレスとして抽出します。IPv6 アドレスと指定されていないアドレスは 0.0.0.0 として抽出されます。
結果の型は struct in_addr(POSIX の場合)または ip4_addr_t(LwIP の場合)のいずれかです。
| 詳細 | |
|---|---|
| 戻り値 | カプセル化された IPv4 アドレス。アドレスが指定されていないか IPv4 アドレスでない場合は  0.0.0.0。 | 
ToIPv4
struct in_addr ToIPv4( void ) const
ToIPv6
ip6_addr_t ToIPv6( void ) const
IPv6 アドレスをプラットフォーム データ構造として抽出します。
可能であれば、ToIPv6() const を使用して、コンテンツを IPv6 アドレスとして抽出します。IPv4 アドレスと指定されていないアドレスは [::] として抽出されます。
結果の型は struct in6_addr(POSIX の場合)または ip6_addr_t(LwIP の場合)のいずれかです。
| 詳細 | |
|---|---|
| 戻り値 | カプセル化された IPv4 アドレス、または  [::] if the address is either unspecified or not an IPv4 address.  | 
ToIPv6
struct in6_addr ToIPv6( void ) const
ToString
char * ToString( char *buf, uint32_t bufSize ) const
従来のテキスト表示形式で IP アドレスを出力します。
ToString(char *buf, uint32_t bufSize) const を使用して、従来のテキスト表現形式の IP アドレスを buf にあるメモリに書き込みます。このメモリは、NUL 終端文字を含めて bufSize バイトまで拡張します。
| 詳細 | |||||
|---|---|---|---|---|---|
| パラメータ | 
 | ||||
注: 一部のプラットフォームでは RFC 5952 に準拠していません。具体的には、セクション 4.2 に従ってゼロ圧縮を適用することはできません。
| 詳細 | |
|---|---|
| 戻り値 | 引数。書式設定エラーがない場合は  buf、それ以外の場合は 0。 | 
タイプ
IPAddressType Type( void ) const
IP アドレスのタイプを抽出します。
このメソッドは、IP アドレスのタイプを示す列挙型の値 IPAddressType を返すために使用します。
| 詳細 | |||||||
|---|---|---|---|---|---|---|---|
| 戻り値 | 
 | ||||||
WriteAddress
void WriteAddress( uint8_t *& p ) const
標準的なネットワーク表現で IP アドレスを出力する。
WriteAddress(uint8_t *&p) を使用して、IPv6 アドレス用に RFC 4291 で定義されているバイナリ形式で IP アドレスをエンコードします。IPv4 アドレスは、セクション 2.5.5.1「IPv4 互換」に従ってエンコードされます。
 IPv6 アドレス"(V4COMPAT)。
| 詳細 | |||
|---|---|---|---|
| パラメータ | 
 | ||
operator!=
bool operator!=( const IPAddress & other ) const
この IP アドレスを他の IP アドレスと比較し、等しくないかどうかを確認します。
| 詳細 | |||||
|---|---|---|---|---|---|
| パラメータ | 
 | ||||
| 戻り値 | 
 | ||||
operator=
IPAddress & operator=( const IPAddress & other )
従来の代入演算子。
| 詳細 | |||
|---|---|---|---|
| パラメータ | 
 | ||
| 戻り値 | このオブジェクトへの参照。 | ||
演算子==
bool operator==( const IPAddress & other ) const
この IP アドレスを別の IP アドレスと比較します。
| 詳細 | |||||
|---|---|---|---|---|---|
| パラメータ | 
 | ||||
| 戻り値 | 
 | ||||
静的パブリック関数
FromIPv4
IPAddress FromIPv4( const ip4_addr_t & addr )
これはオーバーロードされたメンバー関数であり、便宜上提供されています。上記の関数との違いは、受け付ける引数のみです。
FromIPv4
IPAddress FromIPv4( const struct in_addr & addr )
プラットフォーム データ構造から IPv4 アドレスを挿入します。
FromIPv4(const ip4_addr_t &addr) を使用して addr を IPv4 アドレスとして挿入します。
引数 addr は、const struct in_addr& 型(POSIX の場合)または const ip4_addr_t& 型(LwIP の場合)のいずれかです。
| 詳細 | |
|---|---|
| 戻り値 | 作成された IP アドレス。 | 
FromIPv6
IPAddress FromIPv6( const ip6_addr_t & addr )
これはオーバーロードされたメンバー関数であり、便宜上提供されています。上記の関数との違いは、受け付ける引数のみです。
FromIPv6
IPAddress FromIPv6( const struct in6_addr & addr )
プラットフォーム データ構造から IPv6 アドレスを挿入します。
FromIPv6(const ip6_addr_t &addr) を使用して addr を IPv6 アドレスとして挿入します。
引数 addr は、const struct in6_addr& 型(POSIX の場合)または const ip6_addr_t& 型(LwIP の場合)のいずれかです。
| 詳細 | |
|---|---|
| 戻り値 | 作成された IP アドレス。 | 
FromSockAddr
IPAddress FromSockAddr( const struct sockaddr & sockaddr )
POSIX struct sockaddr& から IPv6 アドレスを注入する
FromSockAddr(const struct sockaddr& sockaddr) を使用して sockaddr.sa_addr を IPv6 アドレスとして挿入します。
| 詳細 | |
|---|---|
| 戻り値 | 作成された IP アドレス。 | 
FromString
bool FromString( const char *str, IPAddress & output )
通常のプレゼンテーション テキストから IP アドレスをスキャンします。
FromString(const char *str, IPAddress& output) を使用して、str にある標準形式のテキストをスキャンして IP アドレスを上書きします。
| 詳細 | |||||
|---|---|---|---|---|---|
| パラメータ | 
 | ||||
| 詳細 | |||||
|---|---|---|---|---|---|
| 戻り値 | 
 | ||||
FromString
bool FromString( const char *str, size_t strLen, IPAddress & output )
通常のプレゼンテーション テキストから IP アドレスをスキャンします。
FromString(const char *str, size_t strLen, IPAddress& output) を使用して、str にある標準形式のテキストをスキャンして IP アドレスを上書きします。
| 詳細 | |||||||
|---|---|---|---|---|---|---|---|
| パラメータ | 
 | ||||||
| 詳細 | |||||
|---|---|---|---|---|---|
| 戻り値 | 
 | ||||
MakeIPv4Broadcast
IPAddress MakeIPv4Broadcast( void )
IPv4 ブロードキャスト アドレスを作成します。
| 詳細 | |
|---|---|
| 戻り値 | 作成された IP アドレス。 | 
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES] )
各部分から IPv6 マルチキャスト アドレスを構築します。
MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint8_t groupId[14]) を使用して、ルーティング スコープ scope とグループ識別子オクテット groupId に対して flags を使用して IPv6 マルチキャスト アドレスを作成します。
| 詳細 | |
|---|---|
| 戻り値 | 作成された IP アドレス。 | 
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, uint32_t aGroupId )
各部分から IPv6 マルチキャスト アドレスを構築します。
MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId) を使用して、ルーティング スコープ scope とグループ ID groupId に flags を使用して IPv6 マルチキャスト アドレスを作成します。
| 詳細 | |
|---|---|
| 戻り値 | 作成された IP アドレス。 | 
MakeIPv6PrefixMulticast
IPAddress MakeIPv6PrefixMulticast( uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId )
一時的な接頭辞 IPv6 マルチキャスト アドレスを各部分から構築します。
MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId) を使用して、ルーティング スコープ scope とグループ識別子オクテット groupId(長さ prefixlen ビットの接頭辞 prefix で修飾される)の一時的な IPv6 マルチキャスト アドレスを作成します。
| 詳細 | |
|---|---|
| 戻り値 | 作成された IP アドレス。 | 
MakeIPv6TransientMulticast
IPAddress MakeIPv6TransientMulticast( uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES] )
一時的な IPv6 マルチキャスト アドレスをそのパーツから構築する。
MakeIPv6TransientMulticast(uint8_t flags, uint8_t scope, uint8_t groupId[14]) を使用して、ルーティング スコープ scope とグループ識別子オクテット groupId に flags を使用して一時的な IPv6 マルチキャスト アドレスを作成します。
| 詳細 | |
|---|---|
| 戻り値 | 作成された IP アドレス。 | 
MakeIPv6WellKnownMulticast
IPAddress MakeIPv6WellKnownMulticast( uint8_t aScope, uint32_t aGroupId )
既知の IPv6 マルチキャスト アドレスをその部分から構築する。
MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId) を使用して、ルーティング スコープ scope とグループ識別子 groupId の IPv6 マルチキャスト アドレスを作成します。
| 詳細 | |
|---|---|
| 戻り値 | 作成された IP アドレス。 | 
MakeLLA
IPAddress MakeLLA( uint64_t interfaceId )
その IID から IPv6 リンクローカルアドレス(LL)を構築します。
MakeLLA(uint64_t interfaceId) を使用して、インターフェース識別子 interfaceId を持つ IPv6 リンクローカル アドレス(LL)を作成します。
| 詳細 | |
|---|---|
| 戻り値 | 作成された IP アドレス。 | 
MakeULA
IPAddress MakeULA( uint64_t globalId, uint16_t subnet, uint64_t interfaceId )
各部分から IPv6 のユニーク ローカル アドレス(ULA)を構築する。
MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId) を使用して、グローバル ネットワーク識別子 globalId、サブネット識別子 subnet、インターフェース識別子(IID)interfaceId を持つユニーク ローカル アドレス(ULA)を作成します。
| 詳細 | |
|---|---|
| 戻り値 | 作成された IP アドレス。 | 
ReadAddress
void ReadAddress( const uint8_t *& p, IPAddress & output )
標準的なネットワーク表現で IP アドレスを出力する。
ReadAddress(uint8_t *&p, IPAddress &output) を使用して、p の IP アドレスをオブジェクト output にデコードします。
| 詳細 | |||||
|---|---|---|---|---|---|
| パラメータ | 
 | ||||