Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。
コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

nl :: Inet :: IPアドレス

#include <src/inet/IPAddress.h>

インターネットプロトコルアドレス。

概要

Nest Inet Layerは、このクラスのオブジェクトを使用して、インターネットプロトコルアドレスを表します(プロトコルバージョンとは関係ありません)。

パブリック属性

Addr [4]
uint32_t
IPアドレスを含む不透明な単語配列(プロトコルバージョンに依存しない)

パブリック静的属性

Any
識別された未指定のIPアドレスオブジェクト。

公の行事

GlobalId (void) const
uint64_t
IPv6ULAアドレスの16ビットグローバルネットワーク識別子を抽出します。
InterfaceId (void) const
uint64_t
IPv6ULAアドレスの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
IPv6ULAアドレスの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からIPv6アドレスを注入struct sockaddr&
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アドレスは、4つの32ビットネットワークバイト順序の符号なし整数に分割されたすべての128ビットを使用します。 IPv4アドレスはV4COMPATです。つまり、最初の3ワードはゼロで、4番目のワードにはネットワークバイトオーダーのIPv4アドレスが含まれています。

パブリック静的属性

どれか

IPAddress Any

識別された未指定のIPアドレスオブジェクト。

このオブジェクトは、同等性の比較のための定数として使用されます。 NestInetレイヤーのユーザーが変更してはなりません。

公の行事

GlobalId

uint64_t GlobalId(
  void
) const 

IPv6ULAアドレスの16ビットグローバルネットワーク識別子を抽出します。

この方法をIPv6一意ローカルアドレス(ULA)とともに使用して、グローバルネットワーク識別子を抽出します。これは、識別されたULAネットワークプレフィックスの直後の40ビット、つまりfd00 :: / 8です。つまり、グローバルネットワーク識別子は、アドレスの2番目の2番目から6番目のバイトまでの5バイトにあります。

詳細
戻り値
40ビットのグローバルネットワーク識別子。IPアドレスがIPv6の一意のローカルアドレスでない場合はゼロ。

InterfaceId

uint64_t InterfaceId(
  void
) const 

IPv6ULAアドレスのIIDを抽出します。

この方法をIPv6の一意のローカルアドレス(ULA)とともに使用して、アドレスの最下位64ビットである識別子識別子(IID)を抽出します。

詳細
戻り値
64ビットのインターフェイス識別子。IPアドレスがIPv6の一意のローカルアドレスでない場合はゼロ。

IsIPv4

bool IsIPv4(
  void
) const 

アドレスがIPv4互換かどうかをテストします。

この方法を使用して、アドレスがIPv4アドレスファミリに属しているかどうかを確認します。注意:未指定のアドレスはIPv4アドレスではありません。

詳細
戻り値
true
アドレスはIPv4であり、不特定のアドレスではありません。
false
アドレスはIPv6または不特定のアドレスです。

IsIPv4Broadcast

bool IsIPv4Broadcast(
  void
) const 

アドレスがIPv4ブロードキャストであるかどうかをテストします。

この方法を使用して、アドレスが特別な目的のIPv4ブロードキャストアドレスであるかどうかを確認します。

詳細
戻り値
true
アドレスはIPv4ブロードキャストです
false
さもないと

IsIPv4Multicast

bool IsIPv4Multicast(
  void
) const 

アドレスがIPv4マルチキャストであるかどうかをテストします。

この方法を使用して、アドレスがIPv4マルチキャストアドレスであるかどうかを確認します。

詳細
戻り値
true
アドレスはIPv4マルチキャストです
false
さもないと

IsIPv6

bool IsIPv6(
  void
) const 

アドレスがIPv6互換かどうかをテストします。

この方法を使用して、アドレスがIPv6アドレスファミリに属しているかどうかを確認します。注意:未指定のアドレスはIPv6アドレスではありません。

詳細
戻り値
true
アドレスはIPv6であり、不特定のアドレスではありません。
false
アドレスはIPv4または不特定のアドレスです。

IsIPv6GlobalUnicast

bool IsIPv6GlobalUnicast(
  void
) const 

アドレスがIPv6グローバルユニキャストアドレスであるかどうかをテストします。

この方法を使用して、アドレスがIPv6アドレスファミリに属し、グローバルユニキャストアドレスプレフィックスが付いているかどうかを確認します。

詳細
戻り値
true
アドレスはIPv6グローバルユニキャストです
false
さもないと

IsIPv6LinkLocal

bool IsIPv6LinkLocal(
  void
) const 

アドレスがIPv6リンクローカルアドレス(LL)であるかどうかをテストします。

この方法を使用して、アドレスがIPv6アドレスファミリに属し、予約済みのIPv6リンクローカルアドレスプレフィックスがあるかどうかを確認します。

詳細
戻り値
true
アドレスはIPv6リンクローカルです
false
さもないと

IsIPv6Multicast

bool IsIPv6Multicast(
  void
) const 

アドレスがIPv6マルチキャストであるかどうかをテストします。

この方法を使用して、アドレスがIPv6アドレスファミリに属し、予約済みのIPv6マルチキャストアドレスプレフィックスがあるかどうかを確認します。

詳細
戻り値
true
アドレスはIPv6マルチキャストです
false
さもないと

IsIPv6ULA

bool IsIPv6ULA(
  void
) const 

アドレスがIPv6一意ローカルアドレス(ULA)であるかどうかをテストします。

この方法を使用して、アドレスがIPv6アドレスファミリに属し、予約済みのIPv6一意ローカルアドレスプレフィックスがあるかどうかを確認します。

詳細
戻り値
true
アドレスはIPv6一意です-ローカル
false
さもないと

IsMulticast

bool IsMulticast(
  void
) const 

アドレスがIPv4またはIPv6マルチキャストであるかどうかをテストします。

この方法を使用して、アドレスがIPv4またはIPv6アドレスファミリに属し、予約済みのIPv4またはIPv6マルチキャストアドレスプレフィックスがあるかどうかを確認します。

詳細
戻り値
true
アドレスはIPv4またはIPv6マルチキャストです
false
さもないと

サブネット

uint16_t Subnet(
  void
) const 

IPv6ULAアドレスの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アドレス、または0.0.0.0アドレスのいずれか指定されていないか、IPv4アドレスである場合。

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とな限り拡張bufSizeそのNUL終端文字を含め、バイト。

詳細
パラメーター
[out] buf
放出されたテキストのアドレス。
[in] bufSize
放出されたテキストのバッファのサイズ。

注:一部のプラットフォームではRFC5952に準拠していません。具体的には、セクション4.2に従って、ゼロ圧縮を適用できない場合があります。

詳細
戻り値
引数buf無い書式設定エラーの場合、またはそれ以外の場合はゼロ。

タイプ

IPAddressType Type(
  void
) const 

IPアドレスのタイプを抽出します。

列挙型の値を返すために、このメソッドを使用しIPAddressType IPアドレスのタイプを示すために。

詳細
戻り値
kIPAddressType_IPv4
アドレスはIPv4です。
kIPAddressType_IPv6
アドレスはIPv6です。
kIPAddressType_Any
アドレスは不特定のアドレスです。

WriteAddress

void WriteAddress(
  uint8_t *& p
) const 

標準のネットワーク表現でIPアドレスを発行します。

使用WriteAddress(uint8_t *&p)のIPv6アドレスは、RFC 4291によって定義されたバイナリ形式のIPアドレスを符号化します。 IPv4アドレスは、セクション2.5.5.1「IPv4互換IPv6アドレス」(V4COMPAT)に従ってエンコードされます。

詳細
パラメーター
[in,out] p
書き込みに使用するカーソルへの参照。

演算子!=

bool operator!=(
  const IPAddress & other
) const 

このIPアドレスを別のIPアドレスと比較して非等価性を確認します。

詳細
パラメーター
[in] other
比較するアドレス。
戻り値
true
同等であればother
false
さもないと

演算子=

IPAddress & operator=(
  const IPAddress & other
)

従来の代入演算子。

詳細
パラメーター
[in] other
コピーするアドレス。
戻り値
このオブジェクトへの参照。

演算子==

bool operator==(
  const IPAddress & other
) const 

このIPアドレスを別のIPアドレスと比較して同等性を確認してください。

詳細
パラメーター
[in] other
比較するアドレス。
戻り値
true
同等であればother
false
さもないと

パブリック静的関数

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からIPv6アドレスを注入struct sockaddr&

使用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)にある従来のテキストプレゼンテーションスキャンしてIPアドレスを上書きするstr

詳細
パラメーター
[in] str
放出されたテキストのアドレス。
[out] output
スキャンしたアドレスに設定するオブジェクト。

詳細
戻り値
true
表示形式は有効です
false
さもないと

FromString

bool FromString(
  const char *str,
  size_t strLen,
  IPAddress & output
)

従来のプレゼンテーションテキストからIPアドレスをスキャンします。

使用FromString(const char *str, size_t strLen, IPAddress& output)にある従来のテキストプレゼンテーションスキャンしてIPアドレスを上書きするstr

詳細
パラメーター
[in] str
スキャンするテキストへのポインタ。
[in] strLen
スキャンするテキストの長さ。
[out] output
スキャンしたアドレスに設定するオブジェクト。

詳細
戻り値
true
表示形式は有効です
false
さもないと

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])とIPv6マルチキャストアドレスを構築するflagsスコープルーティング用scopeとグループ識別子オクテットgroupId

詳細
戻り値
構築されたIPアドレス。

MakeIPv6Multicast

IPAddress MakeIPv6Multicast(
  uint8_t aFlags,
  uint8_t aScope,
  uint32_t aGroupId
)

その部分からIPv6マルチキャストアドレスを構築します。

使用MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId)とIPv6マルチキャストアドレスを構築するflagsスコープルーティング用scope識別子とグループgroupId

詳細
戻り値
構築された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)スコープルーティングすると一過、接頭辞IPv6マルチキャストアドレス構成するscopeとグループ識別子オクテットgroupIdプレフィックスによって修飾、 prefix長のprefixlenビット。

詳細
戻り値
構築された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])を用いて一過性IPv6マルチキャストアドレスを構築するflagsスコープルーティング用scopeとグループ識別子オクテットgroupId

詳細
戻り値
構築されたIPアドレス。

MakeIPv6WellKnownMulticast

IPAddress MakeIPv6WellKnownMulticast(
  uint8_t aScope,
  uint32_t aGroupId
)

その部分から既知のIPv6マルチキャストアドレスを構築します。

使用MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId)スコープルーティングのIPv6マルチキャストアドレスを構成するscope識別子とグループgroupId

詳細
戻り値
構築されたIPアドレス。

MakeLLA

IPAddress MakeLLA(
  uint64_t interfaceId
)

IIDからIPv6リンクローカルアドレス(LL)を構築します。

使用MakeLLA(uint64_t interfaceId)インタフェース識別子とIPv6リンクローカルアドレス(LL)を構築するinterfaceId

詳細
戻り値
構築された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)グローバルネットワーク識別子とユニークローカルアドレス(ULA)を構築するglobalId 、サブネット識別子subnetとインターフェース識別子(IID) interfaceId

詳細
戻り値
構築されたIPアドレス。

ReadAddress

void ReadAddress(
  const uint8_t *& p,
  IPAddress & output
)

標準のネットワーク表現でIPアドレスを発行します。

利用ReadAddress(uint8_t *&p, IPAddress &output)でIPアドレスをデコードするためpオブジェクトにoutput

詳細
パラメーター
[in,out] p
読み取りに使用するカーソルへの参照。
[out] output
デコードされたIPアドレスを受信するオブジェクト。