nl:: اینت:: آدرس IP

#include <src/inet/IPAddress.h>

آدرس پروتکل اینترنت

خلاصه

لایه Nest Inet از اشیاء این کلاس برای نشان دادن آدرس های پروتکل اینترنت (مستقل از نسخه پروتکل) استفاده می کند.

صفات عمومی

Addr [4]
uint32_t
آرایه کلمات مات حاوی آدرس های IP (مستقل از نسخه پروتکل)

صفات استاتیک عمومی

Any
شیء آدرس IP نامشخص متمایز.

توابع عمومی

GlobalId (void) const
uint64_t
شناسه شبکه جهانی 16 بیتی یک آدرس ULA IPv6 را استخراج کنید.
InterfaceId (void) const
uint64_t
شناسه یک آدرس IPv6 ULA را استخراج کنید.
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 آدرس جهانی unicast است یا خیر.
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
شناسه زیرشبکه 16 بیتی یک آدرس IPv6 ULA را استخراج کنید.
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 را با دیگری برای عدم هم ارزی مقایسه کنید.
operator= (const IPAddress & other)
اپراتور انتساب معمولی
operator== (const IPAddress & other) const
bool
این آدرس 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)
آدرس 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)
یک آدرس IPv6 پیوند محلی (LL) از ID آن بسازید.
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 بیت تقسیم شده به چهار بایت شبکه 32 بیتی اعداد صحیح بدون علامت مرتب شده استفاده می کند. آدرس های IPv4 V4COMPAT هستند، یعنی سه کلمه اول صفر و کلمه چهارم شامل آدرس IPv4 به ترتیب بایت شبکه است.

صفات استاتیک عمومی

هر

IPAddress Any

شیء آدرس IP نامشخص متمایز.

این شی به عنوان یک ثابت برای مقایسه هم ارزی استفاده می شود. کاربران لایه Nest Inet نباید آن را تغییر دهند.

توابع عمومی

شناسه جهانی

uint64_t GlobalId(
  void
) const 

شناسه شبکه جهانی 16 بیتی یک آدرس ULA IPv6 را استخراج کنید.

از این روش با یک آدرس محلی منحصر به فرد IPv6 (ULA) برای استخراج شناسه شبکه سراسری استفاده کنید، که 40 بیت بلافاصله پس از پیشوند شبکه متمایز ULA، یعنی fd00::/8 است. به عبارت دیگر، شناسه شبکه سراسری در پنج بایت از بایت دوم تا ششم در آدرس قرار دارد.

جزئیات
برمی گرداند
شناسه شبکه جهانی 40 بیتی یا اگر آدرس IP یک آدرس محلی منحصر به فرد IPv6 نباشد صفر است.

شناسه رابط

uint64_t InterfaceId(
  void
) const 

شناسه یک آدرس IPv6 ULA را استخراج کنید.

از این روش با یک آدرس محلی منحصر به فرد IPv6 (ULA) برای استخراج شناسه شناسه (IID) استفاده کنید، که کمترین 64 بیت آدرس را دارد.

جزئیات
برمی گرداند
شناسه رابط 64 بیتی، یا اگر آدرس IP یک آدرس محلی منحصر به فرد IPv6 نباشد، صفر است.

IsIPv4

bool IsIPv4(
  void
) const 

تست کنید آیا آدرس با IPv4 سازگار است یا خیر.

از این روش برای بررسی اینکه آیا آدرس متعلق به خانواده آدرس IPv4 است استفاده کنید. خوب توجه کنید: آدرس نامشخص یک آدرس IPv4 نیست.

جزئیات
ارزش های بازگشتی
true
آدرس IPv4 است و آدرس نامشخصی نیست.
false
آدرس IPv6 یا آدرس نامشخص است.

پخش IsIPv4

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 آدرس جهانی unicast است یا خیر.

از این روش برای بررسی اینکه آیا آدرس متعلق به خانواده آدرس IPv6 است و دارای پیشوند آدرس جهانی unicast است یا خیر، استفاده کنید.

جزئیات
ارزش های بازگشتی
true
آدرس IPv6 جهانی unicast است
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 

شناسه زیرشبکه 16 بیتی یک آدرس IPv6 ULA را استخراج کنید.

از این روش با یک آدرس محلی منحصر به فرد IPv6 (ULA) برای استخراج شناسه زیرشبکه استفاده کنید، که کمترین 16 بیت پیشوند شبکه است. پیشوند شبکه مهم ترین 64 بیت آدرس است. به عبارت دیگر، شناسه زیر شبکه در بایت های 7 و 8 یک آدرس 16 بایتی قرار دارد.

جزئیات
برمی گرداند
شناسه زیرشبکه 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
اندازه بافر برای متن ارسال شده.

توجه داشته باشید: در برخی از سیستم عامل ها با RFC 5952 سازگار نیست. به طور خاص، فشرده سازی صفر ممکن است طبق بخش 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) برای رمزگذاری آدرس IP در قالب باینری تعریف شده توسط RFC 4291 برای آدرس های IPv6 استفاده کنید. آدرس‌های IPv4 بر اساس بخش 2.5.5.1 "آدرس IPv6 سازگار با IPv4" (V4COMPAT) کدگذاری می‌شوند.

جزئیات
پارامترها
[in,out] p
ارجاع به مکان نما برای استفاده برای نوشتن.

اپراتور!=

bool operator!=(
  const IPAddress & other
) const 

این آدرس IP را با دیگری برای عدم هم ارزی مقایسه کنید.

جزئیات
پارامترها
[in] other
آدرس برای مقایسه
ارزش های بازگشتی
true
اگر معادل other باشد
false
در غیر این صورت

اپراتور=

IPAddress & operator=(
  const IPAddress & other
)

اپراتور انتساب معمولی

جزئیات
پارامترها
[in] other
آدرسی که باید کپی کنید
برمی گرداند
اشاره ای به این شی.

اپراتور==

bool operator==(
  const IPAddress & other
) const 

این آدرس IP را با دیگری برای معادل سازی مقایسه کنید.

جزئیات
پارامترها
[in] other
آدرس برای مقایسه
ارزش های بازگشتی
true
اگر معادل other باشد
false
در غیر این صورت

توابع استاتیک عمومی

از IPv4

IPAddress FromIPv4(
  const ip4_addr_t & addr
)

این یک تابع عضو اضافه بار است که برای راحتی ارائه شده است. تفاوت آن با تابع فوق تنها در مورد پذیرش (های) آن است.

از IPv4

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 ساخته شده

از IPv6

IPAddress FromIPv6(
  const ip6_addr_t & addr
)

این یک تابع عضو اضافه بار است که برای راحتی ارائه شده است. تفاوت آن با تابع فوق تنها در مورد پذیرش (های) آن است.

از IPv6

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
)

آدرس 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 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
)

یک آدرس IPv6 پیوند محلی (LL) از ID آن بسازید.

از 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 ساخته شده

آدرس خواندن

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

آدرس IP را در نمایش شبکه استاندارد منتشر کنید.

از ReadAddress(uint8_t *&p, IPAddress &output) برای رمزگشایی آدرس IP در p به output شی استفاده کنید.

جزئیات
پارامترها
[in,out] p
برای خواندن به مکان نما مراجعه کنید.
[out] output
شیء برای دریافت آدرس IP رمزگشایی شده.