nl :: إنت :: عنوان IP
#include <src/inet/IPAddress.h>
عنوان بروتوكول الإنترنت.
ملخص
تستخدم طبقة Nest Inet كائنات من هذه الفئة لتمثيل عناوين بروتوكول الإنترنت (بغض النظر عن إصدار البروتوكول).
السمات العامة | |
---|---|
Addr [4] | uint32_t مصفوفة كلمات مبهمة لتحتوي على عناوين IP (بغض النظر عن إصدار البروتوكول) |
السمات العامة الثابتة | |
---|---|
Any | كائن عنوان IP المميز غير المحدد. |
الوظائف العامة | |
---|---|
GlobalId (void) const | uint64_t استخراج معرف الشبكة العمومية 16 بت لعنوان IPv6 ULA. |
InterfaceId (void) const | uint64_t استخراج IID لعنوان 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. |
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 من POSIX 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) من IID الخاص به. |
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.
الوظائف العامة
GlobalId
uint64_t GlobalId( void ) const
استخراج معرف الشبكة العمومية 16 بت لعنوان IPv6 ULA.
استخدم هذه الطريقة مع عنوان IPv6 المحلي الفريد (ULA) لاستخراج معرف الشبكة العالمية ، وهو 40 بت بعد بادئة شبكة ULA المميزة ، أي fd00 :: / 8. بمعنى آخر ، يقع معرف الشبكة العالمية في الخمس بايتات من الثانية إلى السادسة بايت في العنوان.
تفاصيل | |
---|---|
عائدات | معرف شبكة عالمية 40 بت ، أو صفر إذا لم يكن عنوان IP عنوان IPv6 محليًا فريدًا. |
InterfaceId
uint64_t InterfaceId( void ) const
استخراج IID لعنوان IPv6 ULA.
استخدم هذه الطريقة مع عنوان IPv6 المحلي الفريد (ULA) لاستخراج معرف المعرف (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.
تفاصيل | |||||
---|---|---|---|---|---|
إرجاع القيم |
|
IsIPv6 متعدد الإرسال
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 بت من العنوان. بمعنى آخر ، يقع معرف الشبكة الفرعية في البايتين السابع والثامن لعنوان مكون من 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
إلى سلسلة
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.
تفاصيل | |||||||
---|---|---|---|---|---|---|---|
إرجاع القيم |
|
اكتب العنوان
void WriteAddress( uint8_t *& p ) const
انبعث عنوان IP في تمثيل الشبكة القياسي.
استخدام WriteAddress(uint8_t *&p)
لتشفير عنوان IP في تنسيق ثنائي المحددة من قبل RFC 4291 للعناوين IPv6. يتم ترميز عناوين IPv4 وفقًا للقسم 2.5.5.1 "عنوان IPv4 المتوافق مع 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 من POSIX 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
.
تفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
|
تفاصيل | |||||
---|---|---|---|---|---|
إرجاع القيم |
|
MakeIPv4 البث
IPAddress MakeIPv4Broadcast( void )
أنشئ عنوان بث IPv4.
تفاصيل | |
---|---|
عائدات | عنوان IP الذي تم إنشاؤه. |
IPv6 متعدد الإرسال
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 الذي تم إنشاؤه. |
IPv6 متعدد الإرسال
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 الذي تم إنشاؤه. |
IPv6Prefix متعدد الإرسال
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 الذي تم إنشاؤه. |
IPv6TransientMulticast
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 الذي تم إنشاؤه. |
IPv6WellKnown متعدد الإرسال
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) من IID الخاص به.
استخدام MakeLLA(uint64_t interfaceId)
لبناء الارتباط المحلي عنوان IPv6 (LL) مع واجهة معرف interfaceId
.
تفاصيل | |
---|---|
عائدات | عنوان IP الذي تم إنشاؤه. |
ميكولا
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
.
تفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجّلة لشركة Oracle و/أو شركائها التابعين، وThread هي علامة تجارية مسجّلة لشركة .Thread Group, Inc.
تاريخ التعديل الأخير: 2019-12-05 (حسب التوقيت العالمي المتفَّق عليه)