nl:: Inet:: IPAddress
#include <src/inet/IPAddress.h>
インターネット プロトコル アドレス。
概要
Nest Inet Layer は、このクラスのオブジェクトを使用して、(プロトコルのバージョンに依存しない)インターネット プロトコル アドレスを表します。
パブリック属性 |
|
---|---|
Addr[4]
|
uint32_t
(プロトコルのバージョンに依存しない)IP アドレスを含む不透明な単語配列
|
公開静的属性 |
|
---|---|
Any
|
識別された未指定の IP アドレス オブジェクト。
|
パブリック関数 |
|
---|---|
GlobalId(void) const
|
uint64_t
IPv6 ULA アドレスの 16 ビットのグローバル ネットワーク識別子を抽出します。
|
InterfaceId(void) const
|
uint64_t
IPv6 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_t
IPv6 ULA アドレスの 16 ビットのサブネット識別子を抽出します。
|
ToIPv4(void) const
|
IPv4 アドレスをプラットフォーム データ構造として抽出します。
|
ToIPv4(void) const
|
struct in_addr
|
ToIPv6(void) const
|
ip6_addr_t
IPv6 アドレスをプラットフォーム データ構造として抽出します。
|
ToIPv6(void) const
|
struct in6_addr
|
ToString(char *buf, uint32_t bufSize) const
|
char *
従来のテキスト表示形式で IP アドレスを出力します。
|
Type(void) const
|
IPAddressType
IP アドレスのタイプを抽出します。
|
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
にデコードします。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|