nl:: Inet:: IPAddress
#include <src/inet/IPAddress.h>
כתובת פרוטוקול האינטרנט.
סיכום
בשכבת Inet של Nest נעשה שימוש באובייקטים של המחלקה הזו כדי לייצג כתובות של פרוטוקול אינטרנט (ללא קשר לגרסת הפרוטוקול).
מאפיינים ציבוריים |
|
---|---|
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
בדיקה אם הכתובת היא כתובת unicast גלובלית של IPv6.
|
IsIPv6LinkLocal(void) const
|
bool
בודקים אם הכתובת היא כתובת IPv6 מסוג קישור מקומי (LL).
|
IsIPv6Multicast(void) const
|
bool
בודקים אם הכתובת היא שידורים מרובים של IPv6.
|
IsIPv6ULA(void) const
|
bool
יש לבדוק אם הכתובת היא כתובת IPv6 מקומית ייחודית (ULA).
|
IsMulticast(void) const
|
bool
בודקים אם הכתובת היא IPv4 או IPv6 Multicast.
|
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& POSIX |
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
בדיקה אם הכתובת היא כתובת unicast גלובלית של IPv6.
אפשר להשתמש בשיטה הזו כדי לבדוק אם הכתובת שייכת למשפחת כתובות 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 Multicast.
כדאי להשתמש בשיטה הזו כדי לבדוק אם הכתובת שייכת למשפחת הכתובות IPv4 או IPv6, והיא כוללת את הקידומת השמורה של כתובות IPv4 או IPv6.
פרטים | |||||
---|---|---|---|---|---|
ערכים מוחזרים |
|
תת-רשת
uint16_t Subnet( void ) const
מחלצים את מזהה הרשת המשנית של 16 ביט של כתובת IPv6 ULA.
מומלץ להשתמש בשיטה הזו עם כתובת ייחודית-מקומית (ULA) של IPv6 כדי לחלץ את מזהה רשת המשנה, שהוא הערך של 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 או אם לא צוינה כתובת 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 הזו לכתובת אחרת כדי לקבל שווים.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
||||
ערכים מוחזרים |
|
פונקציות סטטיות ציבוריות
FromIPv4
IPAddress FromIPv4( const ip4_addr_t & addr )
לנוחותך, זוהי פונקציית עומס יתר. הפונקציה שונה מהפונקציה שלמעלה רק מבחינת הארגומנטים שהיא מקבלת.
FromIPv4
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 המובנית.
|
FromIPv6
IPAddress FromIPv6( const ip6_addr_t & addr )
לנוחותך, זוהי פונקציית עומס יתר. הפונקציה שונה מהפונקציה שלמעלה רק מבחינת הארגומנטים שהיא מקבלת.
FromIPv6
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&
POSIX
יש להשתמש ב-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 מחלקים.
כדי ליצור כתובת מרובת-שידורים זמנית של IPv6, משתמשים ב-MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId)
עבור היקף הניתוב scope
ומזהה הקבוצה groupId
, לפי הקידומת 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) מה-IID שלה.
השימוש ב-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 המובנית.
|
ReadAddress
void ReadAddress( const uint8_t *& p, IPAddress & output )
פלט כתובת ה-IP בייצוג רשת סטנדרטי.
משתמשים בפונקציה ReadAddress(uint8_t *&p, IPAddress &output)
כדי לפענח את כתובת ה-IP ב-p
לאובייקט output
.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|