nl:: Inet:: IPAddress
#include <src/inet/IPAddress.h>
כתובת פרוטוקול אינטרנט.
סיכום
Nest Inet Layer משתמשת באובייקטים מהמחלקה הזו כדי לייצג כתובות פרוטוקול אינטרנט (בהתאם לגרסת הפרוטוקול).
מאפיינים ציבוריים |
|
---|---|
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
לבדוק אם הכתובת היא Multicast של IPv4.
|
IsIPv6(void) const
|
bool
לבדוק אם הכתובת תואמת ל-IPv6.
|
IsIPv6GlobalUnicast(void) const
|
bool
בדיקה אם הכתובת היא כתובת unicast גלובלית של IPv6.
|
IsIPv6LinkLocal(void) const
|
bool
לבדוק אם הכתובת היא כתובת מקומית של קישור IPv6 (LL).
|
IsIPv6Multicast(void) const
|
bool
לבדוק אם הכתובת היא Multicast של IPv6.
|
IsIPv6ULA(void) const
|
bool
בודקים אם הכתובת היא כתובת מקומית ייחודית (ULA) של IPv6.
|
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 Multicast מהחלקים שלה.
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, uint32_t aGroupId)
|
בנו כתובת IPv6 Multicast מהחלקים שלה.
|
MakeIPv6PrefixMulticast(uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId)
|
בנו כתובת זמנית, עם קידומת של כתובת Multicast של IPv6 מהחלקים שלה.
|
MakeIPv6TransientMulticast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
|
בנייה של כתובת Multicast של IPv6 זמנית מהחלקים שלה.
|
MakeIPv6WellKnownMulticast(uint8_t aScope, uint32_t aGroupId)
|
בנו כתובת ידועה של IPv6 Multicast מהחלקים שלה.
|
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 בייצוג רשת סטנדרטי.
|
מאפיינים ציבוריים
Addr
uint32_t Addr[4]
מערך מילים אטום שיכיל כתובות IP (ללא תלות בגרסת הפרוטוקול)
כתובת IPv6 משתמשת בכל מספרי ה-128 סיביות המפוצלים לארבעה מספרים שלמים לא חתומים של 32 ביט ברשת. כתובות IPv4 הן V4COMPAT, כלומר שלוש המילים הראשונות הן אפס והמילה הרביעית מכילה את כתובת IPv4 לפי סדר בייטים ברשת.
מאפיינים סטטיים ציבוריים
הכול
IPAddress Any
האובייקט הייחודי של כתובת ה-IP ולא צוין.
האובייקט הזה משמש כקבוע להשוואות שקילות. המשתמשים בשכבת Inet של Nest לא יכולים לשנות אותו.
פונקציות ציבוריות
GlobalId
uint64_t GlobalId( void ) const
מחלצים את מזהה הרשת הגלובלי של 16 ביט של כתובת IPv6 ULA.
משתמשים בשיטה הזו עם כתובת מקומית ייחודית של IPv6 (ULA) כדי לחלץ את מזהה הרשת הגלובלית, שהוא 40 הביטים מיד אחרי הקידומת המובחנת של רשת ULA, כלומר fd00::/8. במילים אחרות, מזהה הרשת הגלובלית ממוקם ב-5 הבייטים מהבייט השני עד השישי בכתובת.
פרטים | |
---|---|
החזרות |
מזהה רשת גלובלי של 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
לבדוק אם הכתובת היא Multicast של IPv4.
אפשר להשתמש בשיטה הזו כדי לבדוק אם הכתובת היא כתובת של פרוטוקול IPv4 Multicast.
פרטים | |||||
---|---|---|---|---|---|
מוחזר ערכים |
|
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
לבדוק אם הכתובת היא Multicast של IPv6.
משתמשים בשיטה הזו כדי לבדוק אם הכתובת שייכת למשפחת כתובות IPv6 ושיש לה קידומת שמורה של כתובת IPv6.
פרטים | |||||
---|---|---|---|---|---|
מוחזר ערכים |
|
איסIPv6ULA
bool IsIPv6ULA( void ) const
בודקים אם הכתובת היא כתובת מקומית ייחודית (ULA) של IPv6.
משתמשים בשיטה הזו כדי לבדוק אם הכתובת שייכת למשפחת כתובות IPv6 ושהקידומת של הכתובת הייחודית של IPv6 שמורה.
פרטים | |||||
---|---|---|---|---|---|
מוחזר ערכים |
|
IsMulticast
bool IsMulticast( void ) const
בודקים אם הכתובת היא IPv4 או IPv6 Multicast.
משתמשים בשיטה הזו כדי לבדוק אם הכתובת שייכת למשפחת הכתובות של 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
מחרוזת ToString
char * ToString( char *buf, uint32_t bufSize ) const
פלט את כתובת ה-IP בפורמט קונבנציונלי להצגת טקסט.
משתמשים ב-ToString(char *buf, uint32_t bufSize) const
כדי לכתוב בזיכרון שממוקם ב-buf
את הפורמט המקובל להצגת טקסט של כתובת IP, והוא מגיע ל-bufSize
בייטים, כולל תו הסיום NUL.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
הערה: לא תואם ל-RFC 5952 בפלטפורמות מסוימות. באופן ספציפי, לא ניתן להחיל דחיסה אפס לפי סעיף 4.2.
פרטים | |
---|---|
החזרות |
הארגומנט
buf אם אין שגיאת פורמט. אחרת, הוא יהיה אפס. |
סוג
IPAddressType Type( void ) const
מחלצים את הסוג של כתובת ה-IP.
משתמשים בשיטה הזו כדי להחזיר ערך מסוג המספור IPAddressType
כדי לציין את הסוג של כתובת ה-IP.
פרטים | |||||||
---|---|---|---|---|---|---|---|
מוחזר ערכים |
|
WriteAddress
void WriteAddress( uint8_t *& p ) const
פלט את כתובת ה-IP בייצוג רשת סטנדרטי.
כדי לקודד את כתובת ה-IP בפורמט בינארי שמוגדר על ידי RFC 4291 עבור כתובות IPv6, צריך להשתמש ב-WriteAddress(uint8_t *&p)
. כתובות IPv4 מקודדות בהתאם לסעיף 2.5.5.1 "תאימות ל-IPv4
כתובת IPv6 (V4COMPAT).
פרטים | |||
---|---|---|---|
פרמטרים |
|
operator!=
bool operator!=( const IPAddress & other ) const
צריך להשוות את כתובת ה-IP הזו לכתובת אחרת לצורך חוסר שקילות.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
||||
מוחזר ערכים |
|
operator=
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 Multicast מהחלקים שלה.
משתמשים ב-MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
כדי ליצור כתובת Multicast של IPv6 עם flags
להיקף הניתוב scope
ו-8 תווים של מזהה הקבוצה groupId
.
פרטים | |
---|---|
החזרות |
כתובת ה-IP המורכבת.
|
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, uint32_t aGroupId )
בנו כתובת IPv6 Multicast מהחלקים שלה.
משתמשים ב-MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId)
כדי ליצור כתובת Multicast של IPv6 עם flags
עבור היקף הניתוב scope
ומזהה הקבוצה groupId
.
פרטים | |
---|---|
החזרות |
כתובת ה-IP המורכבת.
|
MakeIPv6PrefixMulticast
IPAddress MakeIPv6PrefixMulticast( uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId )
בנו כתובת זמנית, עם קידומת של כתובת Multicast של IPv6 מהחלקים שלה.
צריך להשתמש ב-MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId)
כדי ליצור כתובת משולבת של IPv6, בעלת קידומת עבור היקף הניתוב 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] )
בנייה של כתובת Multicast של IPv6 זמנית מהחלקים שלה.
משתמשים ב-MakeIPv6TransientMulticast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
כדי ליצור כתובת Multicast של IPv6 זמנית עם flags
להיקף הניתוב scope
ו-8 תווים של מזהה הקבוצה groupId
.
פרטים | |
---|---|
החזרות |
כתובת ה-IP המורכבת.
|
MakeIPv6WellKnownMulticast
IPAddress MakeIPv6WellKnownMulticast( uint8_t aScope, uint32_t aGroupId )
בנו כתובת ידועה של IPv6 Multicast מהחלקים שלה.
משתמשים ב-MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId)
כדי ליצור כתובת Multicast של 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
.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|