nl:: Inet:: IP Adresse
#include <src/inet/IPAddress.h>
Internetprotokolladresse.
Zusammenfassung
Der Nest Inet Layer verwendet Objekte dieser Klasse, um Internetprotokolladressen darzustellen (unabhängig von der Protokollversion).
Öffentliche Attribute | |
---|---|
Addr [4] | uint32_t Opakes Wortarray zur Aufnahme von IP-Adressen (unabhängig von der Protokollversion) |
Öffentliche statische Attribute | |
---|---|
Any | Das Distinguished nicht spezifizierte IP-Adressobjekt. |
Öffentliche Funktionen | |
---|---|
GlobalId (void) const | uint64_t Extrahieren Sie die globale 16-Bit-Netzwerkkennung einer IPv6-ULA-Adresse. |
InterfaceId (void) const | uint64_t Extrahieren Sie die IID einer IPv6-ULA-Adresse. |
IsIPv4 (void) const | bool Testen Sie, ob die Adresse IPv4-kompatibel ist. |
IsIPv4Broadcast (void) const | bool Testen Sie, ob die Adresse IPv4-Broadcast ist. |
IsIPv4Multicast (void) const | bool Testen Sie, ob die Adresse IPv4-Multicast ist. |
IsIPv6 (void) const | bool Testen Sie, ob die Adresse IPv6-kompatibel ist. |
IsIPv6GlobalUnicast (void) const | bool Testen Sie, ob die Adresse eine globale IPv6-Unicast-Adresse ist. |
IsIPv6LinkLocal (void) const | bool Testen Sie, ob die Adresse eine IPv6 Link-Local-Adresse (LL) ist. |
IsIPv6Multicast (void) const | bool Testen Sie, ob die Adresse IPv6-Multicast ist. |
IsIPv6ULA (void) const | bool Testen Sie, ob die Adresse eine eindeutige lokale IPv6-Adresse (ULA) ist. |
IsMulticast (void) const | bool Testen Sie, ob die Adresse IPv4- oder IPv6-Multicast ist. |
Subnet (void) const | uint16_t Extrahieren Sie die 16-Bit-Subnetzkennung einer IPv6-ULA-Adresse. |
ToIPv4 (void) const | Extrahieren Sie die IPv4-Adresse als Plattformdatenstruktur. |
ToIPv4 (void) const | struct in_addr |
ToIPv6 (void) const | ip6_addr_t Extrahieren Sie die IPv6-Adresse als Plattformdatenstruktur. |
ToIPv6 (void) const | struct in6_addr |
ToString (char *buf, uint32_t bufSize) const | char * Geben Sie die IP-Adresse im herkömmlichen Textdarstellungsformat aus. |
Type (void) const | IPAddressType Extrahieren Sie den Typ der IP-Adresse. |
WriteAddress (uint8_t *& p) const | void Geben Sie die IP-Adresse in der Standard-Netzwerkdarstellung aus. |
operator!= (const IPAddress & other) const | bool Vergleichen Sie diese IP-Adresse mit einer anderen auf Ungleichheit. |
operator= (const IPAddress & other) | Konventioneller Zuweisungsoperator. |
operator== (const IPAddress & other) const | bool Vergleichen Sie diese IP-Adresse mit einer anderen auf Gleichwertigkeit. |
Öffentliche statische Funktionen | |
---|---|
FromIPv4 (const ip4_addr_t & addr) | |
FromIPv4 (const struct in_addr & addr) | Fügen Sie die IPv4-Adresse aus einer Plattformdatenstruktur ein. |
FromIPv6 (const ip6_addr_t & addr) | |
FromIPv6 (const struct in6_addr & addr) | Fügen Sie die IPv6-Adresse aus einer Plattformdatenstruktur ein. |
FromSockAddr (const struct sockaddr & sockaddr) | Inject der IPv6 - Adresse von einem POSIX struct sockaddr& |
FromString (const char *str, IPAddress & output) | bool Scannen Sie die IP-Adresse aus ihrem herkömmlichen Präsentationstext. |
FromString (const char *str, size_t strLen, IPAddress & output) | bool Scannen Sie die IP-Adresse aus ihrem herkömmlichen Präsentationstext. |
MakeIPv4Broadcast (void) | Konstruieren Sie eine IPv4-Broadcast-Adresse. |
MakeIPv6Multicast (uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES]) | Konstruieren Sie eine IPv6-Multicast-Adresse aus ihren Teilen. |
MakeIPv6Multicast (uint8_t aFlags, uint8_t aScope, uint32_t aGroupId) | Konstruieren Sie eine IPv6-Multicast-Adresse aus ihren Teilen. |
MakeIPv6PrefixMulticast (uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId) | Konstruieren Sie eine vorübergehende IPv6-Multicast-Adresse mit Präfix aus ihren Teilen. |
MakeIPv6TransientMulticast (uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES]) | Konstruieren Sie eine transiente IPv6-Multicast-Adresse aus ihren Teilen. |
MakeIPv6WellKnownMulticast (uint8_t aScope, uint32_t aGroupId) | Konstruieren Sie eine bekannte IPv6-Multicast-Adresse aus ihren Teilen. |
MakeLLA (uint64_t interfaceId) | Konstruieren Sie eine IPv6 Link-Local-Adresse (LL) aus ihrer IID. |
MakeULA (uint64_t globalId, uint16_t subnet, uint64_t interfaceId) | Konstruieren Sie eine IPv6 Unique-Local-Adresse (ULA) aus ihren Teilen. |
ReadAddress (const uint8_t *& p, IPAddress & output) | void Geben Sie die IP-Adresse in der Standard-Netzwerkdarstellung aus. |
Öffentliche Attribute
Adresse
uint32_t Addr[4]
Opakes Wortarray zur Aufnahme von IP-Adressen (unabhängig von der Protokollversion)
IPv6-Adressen verwenden alle 128-Bit, die in vier 32-Bit-Netzwerk-Bytes ohne Vorzeichen aufgeteilt sind. IPv4-Adressen sind V4COMPAT, dh die ersten drei Wörter sind Null, und das vierte Wort enthält die IPv4-Adresse in Netzwerk-Byte-Reihenfolge.
Öffentliche statische Attribute
Irgendein
IPAddress Any
Das Distinguished nicht spezifizierte IP-Adressobjekt.
Dieses Objekt wird als Konstante für Äquivalenzvergleiche verwendet. Sie darf nicht von Nutzern des Nest Inet Layers geändert werden.
Öffentliche Funktionen
GlobalId
uint64_t GlobalId( void ) const
Extrahieren Sie die globale 16-Bit-Netzwerkkennung einer IPv6-ULA-Adresse.
Verwenden Sie diese Methode mit einer eindeutigen lokalen IPv6-Adresse (ULA), um die globale Netzwerkkennung zu extrahieren, d. h. die 40 Bits unmittelbar nach dem eindeutigen ULA-Netzwerkpräfix, dh fd00::/8. Mit anderen Worten, die globale Netzwerkkennung befindet sich in den fünf Bytes vom 2. 2. bis 6. Byte in der Adresse.
Einzelheiten | |
---|---|
Kehrt zurück | Globale 40-Bit-Netzwerkkennung oder Null, wenn die IP-Adresse keine eindeutige lokale IPv6-Adresse ist. |
Schnittstellen-ID
uint64_t InterfaceId( void ) const
Extrahieren Sie die IID einer IPv6-ULA-Adresse.
Verwenden Sie diese Methode mit einer eindeutigen lokalen IPv6-Adresse (ULA), um den Identifier Identifier (IID) zu extrahieren, der die niederwertigsten 64 Bit der Adresse ist.
Einzelheiten | |
---|---|
Kehrt zurück | 64-Bit-Schnittstellenkennung oder Null, wenn die IP-Adresse keine eindeutige lokale IPv6-Adresse ist. |
IsIPv4
bool IsIPv4( void ) const
Testen Sie, ob die Adresse IPv4-kompatibel ist.
Verwenden Sie diese Methode, um zu überprüfen, ob die Adresse zur IPv4-Adressfamilie gehört. Beachten Sie: Die nicht angegebene Adresse ist keine IPv4-Adresse.
Einzelheiten | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsIPv4Broadcast
bool IsIPv4Broadcast( void ) const
Testen Sie, ob die Adresse IPv4-Broadcast ist.
Verwenden Sie diese Methode, um zu überprüfen, ob es sich bei der Adresse um die spezielle IPv4-Broadcast-Adresse handelt.
Einzelheiten | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsIPv4Multicast
bool IsIPv4Multicast( void ) const
Testen Sie, ob die Adresse IPv4-Multicast ist.
Verwenden Sie diese Methode, um zu überprüfen, ob die Adresse eine IPv4-Multicast-Adresse ist.
Einzelheiten | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsIPv6
bool IsIPv6( void ) const
Testen Sie, ob die Adresse IPv6-kompatibel ist.
Verwenden Sie diese Methode, um zu überprüfen, ob die Adresse zur IPv6-Adressfamilie gehört. Beachten Sie: Die nicht angegebene Adresse ist keine IPv6-Adresse.
Einzelheiten | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsIPv6GlobalUnicast
bool IsIPv6GlobalUnicast( void ) const
Testen Sie, ob die Adresse eine globale IPv6-Unicast-Adresse ist.
Verwenden Sie diese Methode, um zu überprüfen, ob die Adresse zur IPv6-Adressfamilie gehört und das globale Unicast-Adresspräfix hat.
Einzelheiten | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsIPv6LinkLocal
bool IsIPv6LinkLocal( void ) const
Testen Sie, ob die Adresse eine IPv6 Link-Local-Adresse (LL) ist.
Verwenden Sie diese Methode, um zu überprüfen, ob die Adresse zur IPv6-Adressfamilie gehört und das reservierte IPv6-Link-Local-Adresspräfix hat.
Einzelheiten | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsIPv6Multicast
bool IsIPv6Multicast( void ) const
Testen Sie, ob die Adresse IPv6-Multicast ist.
Verwenden Sie diese Methode, um zu überprüfen, ob die Adresse zur IPv6-Adressfamilie gehört und das reservierte IPv6-Multicast-Adresspräfix hat.
Einzelheiten | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsIPv6ULA
bool IsIPv6ULA( void ) const
Testen Sie, ob die Adresse eine eindeutige lokale IPv6-Adresse (ULA) ist.
Verwenden Sie diese Methode, um zu überprüfen, ob die Adresse zur IPv6-Adressfamilie gehört und über das reservierte IPv6-eindeutige lokale Adresspräfix verfügt.
Einzelheiten | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IstMulticast
bool IsMulticast( void ) const
Testen Sie, ob die Adresse IPv4- oder IPv6-Multicast ist.
Verwenden Sie diese Methode, um zu überprüfen, ob die Adresse zur IPv4- oder IPv6-Adressfamilie gehört und über das reservierte IPv4- oder IPv6-Multicast-Adresspräfix verfügt.
Einzelheiten | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
Subnetz
uint16_t Subnet( void ) const
Extrahieren Sie die 16-Bit-Subnetzkennung einer IPv6-ULA-Adresse.
Verwenden Sie diese Methode mit einer eindeutigen lokalen IPv6-Adresse (ULA), um die Subnetzkennung zu extrahieren, die die niedrigstwertigen 16 Bit des Netzwerkpräfixes sind. Das Netzwerkpräfix besteht aus den 64 höchstwertigen Bits der Adresse. Mit anderen Worten, die Subnetzkennung befindet sich im 7. und 8. Byte einer 16-Byte-Adresse.
Einzelheiten | |
---|---|
Kehrt zurück | 16-Bit-Subnetzkennung oder Null, wenn die IP-Adresse keine eindeutige lokale IPv6-Adresse ist. |
Zu IPv4
ip4_addr_t ToIPv4( void ) const
Extrahieren Sie die IPv4-Adresse als Plattformdatenstruktur.
Verwendung ToIPv4() const
den Inhalt als eine IPv4 - Adresse, wenn möglich , zu extrahieren. IPv6 - Adressen und die nicht spezifizierte Adresse als extrahiert 0.0.0.0
.
Das Ergebnis ist entweder vom Typ struct in_addr
(auf POSIX) oder ip4_addr_t
(auf lwIP).
Einzelheiten | |
---|---|
Kehrt zurück | Die eingekapselte IPv4 - Adresse oder 0.0.0.0 , wenn die Adresse entweder nicht spezifiziert ist oder nicht eine IPv4 - Adresse. |
Zu IPv4
struct in_addr ToIPv4( void ) const
Zu IPv6
ip6_addr_t ToIPv6( void ) const
Extrahieren Sie die IPv6-Adresse als Plattformdatenstruktur.
Verwendung ToIPv6() const
den Inhalt als eine IPv6 - Adresse, wenn möglich , zu extrahieren. IPv4 - Adressen und die nicht spezifizierte Adresse als extrahiert [::]
.
Das Ergebnis ist entweder vom Typ struct in6_addr
(auf POSIX) oder ip6_addr_t
(auf lwIP).
Einzelheiten | |
---|---|
Kehrt zurück | Die eingekapselte IPv4 - Adresse oder [::] if the address is either unspecified or not an IPv4 address. , [::] if the address is either unspecified or not an IPv4 address. - [::] if the address is either unspecified or not an IPv4 address. |
Zu IPv6
struct in6_addr ToIPv6( void ) const
ToString
char * ToString( char *buf, uint32_t bufSize ) const
Geben Sie die IP-Adresse im herkömmlichen Textdarstellungsformat aus.
Verwendung ToString(char *buf, uint32_t bufSize) const
die herkömmliche Textpräsentationsform der IP - Adresse an den Speicher schreiben angeordnet buf
ist und sich so weit wie bufSize
Bytes, einschließlich der NUL Abschlusszeichen.
Einzelheiten | |||||
---|---|---|---|---|---|
Parameter |
|
Hinweis Nun: auf einigen Plattformen nicht mit RFC 5952 kompatibel. Insbesondere darf keine Nullkompression gemäß Abschnitt 4.2 angewendet werden.
Einzelheiten | |
---|---|
Kehrt zurück | Das Argument buf , wenn keine Formatierungsfehler, oder andernfalls Null. |
Art
IPAddressType Type( void ) const
Extrahieren Sie den Typ der IP-Adresse.
Verwenden Sie diese Methode einen Wert des Aufzählungstypen zurückzukehren IPAddressType
den Typen der IP - Adresse anzuzeigen.
Einzelheiten | |||||||
---|---|---|---|---|---|---|---|
Rückgabewerte |
|
Adresse schreiben
void WriteAddress( uint8_t *& p ) const
Geben Sie die IP-Adresse in der Standard-Netzwerkdarstellung aus.
Verwendung WriteAddress(uint8_t *&p)
die IP - Adresse im Binärformat von RFC 4291 für die IPv6 - Adressen definiert kodieren. IPv4-Adressen werden gemäß Abschnitt 2.5.5.1 „IPv4-kompatible IPv6-Adresse“ (V4COMPAT) verschlüsselt.
Einzelheiten | |||
---|---|---|---|
Parameter |
|
Betreiber!=
bool operator!=( const IPAddress & other ) const
Vergleichen Sie diese IP-Adresse mit einer anderen auf Ungleichheit.
Einzelheiten | |||||
---|---|---|---|---|---|
Parameter |
| ||||
Rückgabewerte |
|
Betreiber=
IPAddress & operator=( const IPAddress & other )
Konventioneller Zuweisungsoperator.
Einzelheiten | |||
---|---|---|---|
Parameter |
| ||
Kehrt zurück | Ein Verweis auf dieses Objekt. |
Betreiber==
bool operator==( const IPAddress & other ) const
Vergleichen Sie diese IP-Adresse mit einer anderen auf Gleichwertigkeit.
Einzelheiten | |||||
---|---|---|---|---|---|
Parameter |
| ||||
Rückgabewerte |
|
Öffentliche statische Funktionen
Von IPv4
IPAddress FromIPv4( const ip4_addr_t & addr )
Dies ist eine überladene Memberfunktion, die der Einfachheit halber bereitgestellt wird. Sie unterscheidet sich von der obigen Funktion nur darin, welche Argumente sie akzeptiert.
Von IPv4
IPAddress FromIPv4( const struct in_addr & addr )
Fügen Sie die IPv4-Adresse aus einer Plattformdatenstruktur ein.
Verwendung FromIPv4(const ip4_addr_t &addr)
einzuspritzen addr
als eine IPv4 - Adresse.
Das Argument addr
ist entweder vom Typ const struct in_addr&
(auf POSIX) oder const ip4_addr_t&
(auf lwIP).
Einzelheiten | |
---|---|
Kehrt zurück | Die konstruierte IP-Adresse. |
Von IPv6
IPAddress FromIPv6( const ip6_addr_t & addr )
Dies ist eine überladene Memberfunktion, die der Einfachheit halber bereitgestellt wird. Sie unterscheidet sich von der obigen Funktion nur darin, welche Argumente sie akzeptiert.
Von IPv6
IPAddress FromIPv6( const struct in6_addr & addr )
Fügen Sie die IPv6-Adresse aus einer Plattformdatenstruktur ein.
Verwendung FromIPv6(const ip6_addr_t &addr)
einzuspritzen addr
als eine IPv6 - Adresse.
Das Argument addr
ist entweder vom Typ const struct in6_addr&
(auf POSIX) oder const ip6_addr_t&
(auf lwIP).
Einzelheiten | |
---|---|
Kehrt zurück | Die konstruierte IP-Adresse. |
FromSockAddr
IPAddress FromSockAddr( const struct sockaddr & sockaddr )
Inject der IPv6 - Adresse von einem POSIX struct sockaddr&
Verwendung FromSockAddr(const struct sockaddr& sockaddr)
einzuspritzen sockaddr.sa_addr
als eine IPv6 - Adresse.
Einzelheiten | |
---|---|
Kehrt zurück | Die konstruierte IP-Adresse. |
FromString
bool FromString( const char *str, IPAddress & output )
Scannen Sie die IP-Adresse aus ihrem herkömmlichen Präsentationstext.
Verwendung FromString(const char *str, IPAddress& output)
eine IP - Adresse zu überschreiben , durch Abtasten der herkömmliche Textpräsentation auf gelegen str
.
Einzelheiten | |||||
---|---|---|---|---|---|
Parameter |
|
Einzelheiten | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
FromString
bool FromString( const char *str, size_t strLen, IPAddress & output )
Scannen Sie die IP-Adresse aus ihrem herkömmlichen Präsentationstext.
Verwendung FromString(const char *str, size_t strLen, IPAddress& output)
durch Abtasten der herkömmlichen Textpräsentation eine IP - Adresse zu überschreiben , um sich str
.
Einzelheiten | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
Einzelheiten | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
MakeIPv4Broadcast
IPAddress MakeIPv4Broadcast( void )
Konstruieren Sie eine IPv4-Broadcast-Adresse.
Einzelheiten | |
---|---|
Kehrt zurück | Die konstruierte IP-Adresse. |
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES] )
Konstruieren Sie eine IPv6-Multicast-Adresse aus ihren Teilen.
Verwendung MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
, eine IPv6 - Multicast - Adresse zu konstruieren , mit flags
zur Leitweglenkung Umfang scope
und Gruppenkennung octets groupId
.
Einzelheiten | |
---|---|
Kehrt zurück | Die konstruierte IP-Adresse. |
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, uint32_t aGroupId )
Konstruieren Sie eine IPv6-Multicast-Adresse aus ihren Teilen.
Verwendung MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId)
eine IPv6 - Multicast - Adresse zu konstruieren , mit flags
zur Leitweglenkung Umfang scope
und Gruppenkennung groupId
.
Einzelheiten | |
---|---|
Kehrt zurück | Die konstruierte IP-Adresse. |
MakeIPv6PrefixMulticast
IPAddress MakeIPv6PrefixMulticast( uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId )
Konstruieren Sie eine vorübergehende IPv6-Multicast-Adresse mit Präfix aus ihren Teilen.
Verwendung MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId)
eine transiente zu konstruieren, prefix IPv6 - Multicast - Adresse mit der für das Routing Umfang scope
und Gruppenkennung octets groupId
, qualifiziert durch die Präfix - prefix
der Länge prefixlen
Bits.
Einzelheiten | |
---|---|
Kehrt zurück | Die konstruierte IP-Adresse. |
MakeIPv6TransientMulticast
IPAddress MakeIPv6TransientMulticast( uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES] )
Konstruieren Sie eine transiente IPv6-Multicast-Adresse aus ihren Teilen.
Verwendung MakeIPv6TransientMulticast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
einen Übergang IPv6 - Multicast - Adresse zu konstruieren , mit flags
zur Leitweglenkung Umfang scope
und Gruppenkennung octets groupId
.
Einzelheiten | |
---|---|
Kehrt zurück | Die konstruierte IP-Adresse. |
MakeIPv6WellKnownMulticast
IPAddress MakeIPv6WellKnownMulticast( uint8_t aScope, uint32_t aGroupId )
Konstruieren Sie eine bekannte IPv6-Multicast-Adresse aus ihren Teilen.
Verwendung MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId)
eine IPv6 - Multicast - Adresse zur Leitweglenkung Umfang konstruieren scope
und Gruppenkennung groupId
.
Einzelheiten | |
---|---|
Kehrt zurück | Die konstruierte IP-Adresse. |
MarkeLLA
IPAddress MakeLLA( uint64_t interfaceId )
Konstruieren Sie eine IPv6 Link-Local-Adresse (LL) aus ihrer IID.
Verwendung MakeLLA(uint64_t interfaceId)
eine IPv6 - link-lokale Adresse (LL) mit der Schnittstellenkennung konstruieren interfaceId
.
Einzelheiten | |
---|---|
Kehrt zurück | Die konstruierte IP-Adresse. |
HerstellerULA
IPAddress MakeULA( uint64_t globalId, uint16_t subnet, uint64_t interfaceId )
Konstruieren Sie eine IPv6 Unique-Local-Adresse (ULA) aus ihren Teilen.
Verwendung MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
eine eindeutige lokale Adresse (ULA) mit der globalen Netzwerkkennung zu konstruieren globalId
, Subnet - Identifikator subnet
und Schnittstellenkennung (IID) interfaceId
.
Einzelheiten | |
---|---|
Kehrt zurück | Die konstruierte IP-Adresse. |
Adresse lesen
void ReadAddress( const uint8_t *& p, IPAddress & output )
Geben Sie die IP-Adresse in der Standard-Netzwerkdarstellung aus.
Verwendung ReadAddress(uint8_t *&p, IPAddress &output)
die IP - Adresse zu dekodieren p
zu dem Objekt output
.
Einzelheiten | |||||
---|---|---|---|---|---|
Parameter |
|