nl:: Inet:: IPAddress
#include <src/inet/IPAddress.h>
インターネット プロトコル アドレス。
概要
Nest Inet レイヤは、このクラスのオブジェクトを使用して、(プロトコル バージョンとは無関係に)インターネット プロトコル アドレスを表します。
パブリック属性 |
|
---|---|
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 アドレスを出力します。
|
パブリック属性
アドレス
uint32_t Addr[4]
IP アドレスを格納する不透明な単語配列(プロトコル バージョンとは無関係)
IPv6 アドレスは、128 ビットすべてを 4 つの 32 ビット ネットワーク バイトの順序付き符号なし整数に分割して使用します。IPv4 アドレスは V4COMPAT です。つまり、最初の 3 ワードはゼロで、4 番目のワードにはネットワーク バイト順の IPv4 アドレスが含まれます。
公開静的属性
指定なし
IPAddress Any
識別された未指定の IP アドレス オブジェクト。
このオブジェクトは、等価比較のための定数として使用されます。Nest Inet レイヤのユーザーはこれを変更しないでください。
パブリック関数
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)とともに使用して、アドレスの最下位の 64 ビットである識別子識別子(IID)を抽出します。
詳細 | |
---|---|
戻り値 |
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
を使用して、buf
に配置されたメモリに従来のテキスト表示形式の IP アドレスを書き込みます。このメモリは NUL 終端文字を含めて最大 bufSize
バイトまで拡張します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
注: プラットフォームによっては、RFC 5952 を遵守していません。具体的には、セクション 4.2 に従い、ゼロ圧縮が適用されない場合があります。
詳細 | |
---|---|
戻り値 |
引数
buf (フォーマット エラーがない場合)、それ以外の場合はゼロ。 |
種類
IPAddressType Type( void ) const
IP アドレスの種類を抽出します。
このメソッドを使用して、IP アドレスのタイプを示す列挙型 IPAddressType
の値を返します。
詳細 | |||||||
---|---|---|---|---|---|---|---|
戻り値 |
|
WriteAddress
void WriteAddress( uint8_t *& p ) const
標準的なネットワーク表現で IP アドレスを出力します。
WriteAddress(uint8_t *&p)
を使用して、RFC 4291 で規定されているバイナリ形式で IP アドレスを IPv6 アドレスにエンコードします。IPv4 アドレスは、セクション 2.5.5.1「IPv4 互換 IPv6 アドレス」(V4COMPAT)に従ってエンコードされます。
詳細 | |||
---|---|---|---|
パラメータ |
|
演算子「!=」を使用する
bool operator!=( const IPAddress & other ) const
この IP アドレスを別の IP アドレスと比較し、同等でないことを確認します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
演算子=
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
とグループ識別子 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
の一時的なプレフィックス IPv6 マルチキャスト アドレスを作成します。これは、長さ prefixlen
ビットのプレフィックス prefix
で修飾されます。
詳細 | |
---|---|
戻り値 |
構成された 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
にデコードします。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|