nl::Inet::InterfaceAddressIterator

#include <src/inet/InetInterface.h>

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

ملخّص

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

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

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

في الأنظمة التي تعتمد على المآخذ، يكون التكرار مستقرًا دائمًا في مواجهة التغييرات التي تطرأ على واجهات و/أو عناوين النظام الأساسي.

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

الدلالة والهياكل

InterfaceAddressIterator(void)
تنشئ كائن InterfaceAddressIterator.
~InterfaceAddressIterator(void)
يؤدي إلى إتلاف كائن InterfaceAddressIterator.

الدوال العامة

GetAddress(void)
احصل على عنوان الواجهة الحالية.
GetAddressWithPrefix(IPPrefix & addrWithPrefix)
void
تعرض IPPrefix عنوان يتضمن طول العنوان والبادئة للعنوان الحالي.
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
يعرض ما إذا كانت واجهة الشبكة المرتبطة بعنوان الواجهة الحالية تتوافق مع البث المتعدد.

الدوال العامة

GetAddress

IPAddress GetAddress(
  void
)

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

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

GetAddressWithPrefix

void GetAddressWithPrefix(
  IPPrefix & addrWithPrefix
)

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

GetIPv6PrefixLength

uint8_t GetIPv6PrefixLength(
  void
)

اسم بديل متوقّف نهائيًا للوحدة التنظيمية "GetPrefixLength(void)"

GetInterface

InterfaceId GetInterface(
  void
)

اسم بديل متوقّف نهائيًا للوحدة التنظيمية "GetInterfaceId(void)"

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

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

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

GetInterfaceName

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
خطأ آخر في النظام أو في النظام الأساسي

GetPrefixLength

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 إذا كان المكرّر يقع بعد نهاية قائمة العناوين.

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

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

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

HasCurrent

bool HasCurrent(
  void
)

InterfaceAddressIterator

 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.

SupportsMulticast

bool SupportsMulticast(
  void
)

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

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

~InterfaceAddressIterator

 ~InterfaceAddressIterator(
  void
)

يؤدي إلى إتلاف كائن InterfaceAddressIterator.

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