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 نیست.
جزئیات | |||||
---|---|---|---|---|---|
ارزش های بازگشتی |
|
پخش IsIPv4
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 آدرس جهانی unicast است یا خیر.
از این روش برای بررسی اینکه آیا آدرس متعلق به خانواده آدرس IPv6 است و دارای پیشوند آدرس جهانی unicast است یا خیر، استفاده کنید.
جزئیات | |||||
---|---|---|---|---|---|
ارزش های بازگشتی |
|
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
شناسه زیرشبکه 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 آن استفاده کنید.
جزئیات | |||||
---|---|---|---|---|---|
پارامترها |
|
توجه داشته باشید: در برخی از سیستم عامل ها با RFC 5952 سازگار نیست. به طور خاص، فشرده سازی صفر ممکن است طبق بخش 4.2 اعمال نشود.
جزئیات | |
---|---|
برمی گرداند | اگر خطای قالب بندی وجود نداشته باشد، آرگومان buf یا در غیر این صورت صفر است. |
تایپ کنید
IPAddressType Type( void ) const
نوع آدرس IP را استخراج کنید.
از این روش برای برگرداندن مقداری از نوع شماره IPAddressType
برای نشان دادن نوع آدرس IP استفاده کنید.
جزئیات | |||||||
---|---|---|---|---|---|---|---|
ارزش های بازگشتی |
|
WriteAddress
void WriteAddress( uint8_t *& p ) const
آدرس IP را در نمایش شبکه استاندارد منتشر کنید.
از WriteAddress(uint8_t *&p)
برای رمزگذاری آدرس IP در قالب باینری تعریف شده توسط RFC 4291 برای آدرس های IPv6 استفاده کنید. آدرسهای IPv4 بر اساس بخش 2.5.5.1 "آدرس IPv6 سازگار با IPv4" (V4COMPAT) کدگذاری میشوند.
جزئیات | |||
---|---|---|---|
پارامترها |
|
اپراتور!=
bool operator!=( const IPAddress & other ) const
این آدرس IP را با دیگری برای عدم هم ارزی مقایسه کنید.
جزئیات | |||||
---|---|---|---|---|---|
پارامترها |
| ||||
ارزش های بازگشتی |
|
اپراتور=
IPAddress & operator=( const IPAddress & other )
اپراتور انتساب معمولی
جزئیات | |||
---|---|---|---|
پارامترها |
| ||
برمی گرداند | اشاره ای به این شی. |
اپراتور==
bool operator==( const IPAddress & other ) const
این آدرس IP را با دیگری برای معادل سازی مقایسه کنید.
جزئیات | |||||
---|---|---|---|---|---|
پارامترها |
| ||||
ارزش های بازگشتی |
|
توابع استاتیک عمومی
از 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
استفاده کنید.
جزئیات | |||||
---|---|---|---|---|---|
پارامترها |
|
جزئیات | |||||
---|---|---|---|---|---|
ارزش های بازگشتی |
|
FromString
bool FromString( const char *str, size_t strLen, IPAddress & output )
آدرس IP را از متن ارائه معمولی آن اسکن کنید.
از FromString(const char *str, size_t strLen, IPAddress& output)
برای بازنویسی یک آدرس IP با اسکن ارائه متن معمولی واقع در str
استفاده کنید.
جزئیات | |||||||
---|---|---|---|---|---|---|---|
پارامترها |
|
جزئیات | |||||
---|---|---|---|---|---|
ارزش های بازگشتی |
|
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
شی استفاده کنید.
جزئیات | |||||
---|---|---|---|---|---|
پارامترها |
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. The OPENTHREAD and related marks are trademarks of the Thread Group and are used under license.
تاریخ آخرین بهروزرسانی 2024-09-12 بهوقت ساعت هماهنگ جهانی.