nl::Inet::InterfaceAddressIterator

#include <src/inet/InetInterface.h>

مكرّر لقائمة عناوين IP لواجهة شبكة النظام.

الملخّص

يمكنك استخدام عناصر من هذه الفئة وتكرار قائمة عناوين IP لواجهة واجهة شبكة النظام.

الطرق في مثيل فردي لهذا الصف غير آمنة لسلاسل المحادثات، ومع ذلك يمكن استخدام مثيلات منفصلة في سلاسل محادثات متعددة في آنٍ واحد.

في أنظمة LwIP متعددة السلاسل، تكون المثيلات آمنة لسلاسل المحادثات بالنسبة إلى سلاسل المحادثات الأخرى التي تصل إلى حالة LwIP العامة، شرط أن: 1) تحتفظ سلاسل المحادثات الأخرى بقفل LwIP الأساسي أثناء تغيير قائمة شبكات netif. و2) كائن netif نفسه لا يتم إتلافه مطلقًا.

في الأنظمة المستندة إلى المقابس، يكون التكرار ثابتًا دائمًا في مواجهة التغييرات في واجهات و/أو عناوين النظام الأساسية.

في أنظمة LwIP، يكون تكرار الإصدار ثابتًا إلا في حال إزالة الواجهة المرتبطة بالعنوان الحالي، وقد ينتهي تكرار هذا الطلب قبل أوانه.

الماكينات والبناء

InterfaceAddressIterator(void)
لإنشاء كائن InterfaceAddressIterator.
~InterfaceAddressIterator(void)
تدمير كائن InterfaceAddressIterator.

وظائف عامة

GetAddress(void)
احصل على عنوان الواجهة الحالي.
GetAddressWithPrefix(IPPrefix & addrWithPrefix)
void
تعرض IPبادئة تحتوي على العنوان وطول البادئة للعنوان الحالي.
GetIPv6PrefixLength(void)
uint8_t
اسم مستعار متوقف لـ GetPrefixLength(void)
GetInterface(void)
InterfaceId
اسم مستعار متوقف لـ GetInterfaceId(void)
GetInterfaceId(void)
InterfaceId
عرض رقم تعريف واجهة الشبكة المرتبط بعنوان الواجهة الحالية.
GetInterfaceName(char *nameBuf, size_t nameBufSize)
يمكنك الحصول على اسم واجهة الشبكة المرتبطة بعنوان الواجهة الحالية.
GetPrefixLength(void)
uint8_t
للحصول على بادئة الشبكة المرتبطة بعنوان الواجهة الحالية.
HasBroadcastAddress(void)
bool
تعرض ما إذا كانت واجهة الشبكة المرتبطة بعنوان الواجهة الحالية لها عنوان بث IPv4.
HasCurrent(void)
bool
IsUp(void)
bool
يعرض ما إذا كانت واجهة الشبكة المرتبطة بعنوان الواجهة الحالية سارية أم لا.
Next(void)
bool
غيِّر المكرر إلى عنوان الواجهة التالي.
SupportsMulticast(void)
bool
تعرض ما إذا كانت واجهة الشبكة المرتبطة بعنوان الواجهة الحالية تتيح البث المتعدد.

وظائف عامة

الحصول على العنوان

IPAddress GetAddress(
  void
)

احصل على عنوان الواجهة الحالي.

التفاصيل
المرتجعات
عنوان الواجهة الحالي أو IPAddress::Any إذا كان المكرر موجودًا بعد نهاية قائمة العناوين.

GetAddressWithPrefix

void GetAddressWithPrefix(
  IPPrefix & addrWithPrefix
)

تعرض IPبادئة تحتوي على العنوان وطول البادئة للعنوان الحالي.

GetIPv6PrefixLength

uint8_t GetIPv6PrefixLength(
  void
)

اسم مستعار متوقف لـ GetPrefixLength(void)

الحصول على الواجهة

InterfaceId GetInterface(
  void
)

اسم مستعار متوقف لـ GetInterfaceId(void)

رقم تعريف واجهة برمجة التطبيقات

InterfaceId GetInterfaceId(
  void
)

عرض رقم تعريف واجهة الشبكة المرتبط بعنوان الواجهة الحالية.

التفاصيل
المرتجعات
معرّف الواجهة أو INET_NULL_INTERFACEID إذا تم وضع المكرر بعد نهاية قائمة العناوين.

اسم GetInterface

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

يمكنك الحصول على اسم واجهة الشبكة المرتبطة بعنوان الواجهة الحالية.

Writes the name of the network interface as \c NUL terminated text string
at \c nameBuf.

التفاصيل
المعلَمات
[in] nameBuf
منطقة من الذاكرة لكتابة اسم الواجهة
[in] nameBufSize
حجم المنطقة التي يشير إليها nameBuf
قيم الإرجاع
INET_NO_ERROR
النتيجة ناجحة، تمت كتابة اسم الواجهة
INET_ERROR_NO_MEMORY
الاسم كبير للغاية بحيث لا يمكن كتابته في المخزن المؤقت
INET_ERROR_INCORRECT_STATE
المكرّر غير موجود حاليًا على عنوان واجهة
other
خطأ آخر في النظام أو النظام الأساسي

طول البادئة

uint8_t GetPrefixLength(
  void
)

للحصول على بادئة الشبكة المرتبطة بعنوان الواجهة الحالية.

On LwIP, this method simply returns the hard-coded constant 64.

Note Well: the standard subnet prefix on all links other than PPP
links is 64 bits. On PPP links and some non-broadcast multipoint access
links, the convention is either 127 bits or 128 bits, but it might be
something else. On most platforms, the system's interface address
structure can represent arbitrary prefix lengths between 0 and 128.

التفاصيل
المرتجعات
بادئة الشبكة (بوحدات البت) أو 0 إذا تم وضع المكرر بعد نهاية قائمة العناوين.

تحتوي على عنوان بث مباشر

bool HasBroadcastAddress(
  void
)

تعرض ما إذا كانت واجهة الشبكة المرتبطة بعنوان الواجهة الحالية لها عنوان بث IPv4.

التفاصيل
المرتجعات
true إذا كانت الواجهة تحتوي على عنوان بث، false إذا لم يكن الأمر كذلك، أو إذا لم يتم وضع المكرّر على عنوان واجهة.

HasCurrent

bool HasCurrent(
  void
)

واجهة العنوان المكرر

 InterfaceAddressIterator(
  void
)

لإنشاء كائن InterfaceAddressIterator.

لبدء المكرّر على عنوان الشبكة الأول في بعض الأنظمة الأساسية، يمكن أن تُصنِّع طريقة التصميم هذه الموارد التي أعادت الأداة التعليمية تدويرها.

IsUp

bool IsUp(
  void
)

يعرض ما إذا كانت واجهة الشبكة المرتبطة بعنوان الواجهة الحالية سارية أم لا.

التفاصيل
المرتجعات
true إذا كانت واجهة الشبكة الحالية قديمة، أو false إذا لم تكن ظاهرة، أو إذا لم يتم وضع المكرّر على عنوان واجهة.

التالي

bool Next(
  void
)

غيِّر المكرر إلى عنوان الواجهة التالي.

Advances the iterator to the next interface address or to a position
beyond the end of the address list.

On LwIP, this method is thread-safe provided that: 1) other threads hold
the LwIP core lock while mutating the netif list; and 2) netif objects
themselves are never destroyed.  Additionally, iteration on LwIP systems
will terminate early if the current interface is removed from the list.

التفاصيل
المرتجعات
false إذا كانت متقدمة في النهاية، بخلاف true.

متوافق مع البث المتعدد

bool SupportsMulticast(
  void
)

تعرض ما إذا كانت واجهة الشبكة المرتبطة بعنوان الواجهة الحالية تتيح البث المتعدد.

التفاصيل
المرتجعات
true إذا كان البث المتعدد متوافقًا، false إذا لم يكن معروضًا، أو إذا لم يتم وضع المكرر على عنوان واجهة.

~InterfaceAddressIterator

 ~InterfaceAddressIterator(
  void
)

تدمير كائن InterfaceAddressIterator.

إعادة تدوير أي موارد تم تخصيصها من قِبل المُنشئ.