nl:: Inet:: IPAddress
#include <src/inet/IPAddress.h>
Internetprotokolladresse.
Zusammenfassung
Die Nest Inet Layer verwendet Objekte dieser Klasse, um Internetprotokolladressen darzustellen (unabhängig von der Protokollversion).
Öffentliche Attribute |
|
---|---|
Addr[4]
|
uint32_t
Intransparentes Wort-Array, das IP-Adressen enthält (unabhängig von der Protokollversion)
|
Öffentliche statische Attribute |
|
---|---|
Any
|
Das nicht näher bestimmten, nicht spezifizierten IP-Adressobjekt.
|
Öffentliche Funktionen |
|
---|---|
GlobalId(void) const
|
uint64_t
Extrahieren Sie den globalen 16-Bit-Netzwerk-Identifikator einer IPv6-UDA-Adresse.
|
InterfaceId(void) const
|
uint64_t
Extrahieren Sie die IID einer IPv6-UDA-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 eine IPv4-Multicast-Adresse ist.
|
IsIPv6(void) const
|
bool
Testen Sie, ob die Adresse IPv6-kompatibel ist.
|
IsIPv6GlobalUnicast(void) const
|
bool
Testen, ob die Adresse eine globale IPv6-Unicast-Adresse ist.
|
IsIPv6LinkLocal(void) const
|
bool
Testen Sie, ob die Adresse die Link-Local-IPv6-Adresse (LL) ist.
|
IsIPv6Multicast(void) const
|
bool
Testen Sie, ob die Adresse eine IPv6-Multicast-Adresse ist.
|
IsIPv6ULA(void) const
|
bool
Testen Sie, ob die Adresse eine eindeutige IPv6-Adresse (Unique-Local Address, 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-Subnetz-ID einer IPv6-UDA-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 *
Gibt die IP-Adresse im herkömmlichen Textpräsentationsformat aus.
|
Type(void) const
|
IPAddressType
Extrahieren Sie den Typ der IP-Adresse.
|
WriteAddress(uint8_t *& p) const
|
void
Gibt die IP-Adresse in der Standardnetzwerkdarstellung aus.
|
operator!=(const IPAddress & other) const
|
bool
Vergleichen Sie diese IP-Adresse auf Inäquivalenz mit einer anderen.
|
operator=(const IPAddress & other)
|
Herkömmlicher Zuweisungsoperator.
|
operator==(const IPAddress & other) const
|
bool
Vergleichen Sie diese IP-Adresse zur Äquivalenz mit einer anderen IP-Adresse.
|
Ö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)
|
IPv6-Adresse aus einer POSIX-
struct sockaddr& einfügen |
FromString(const char *str, IPAddress & output)
|
bool
Scannen Sie die IP-Adresse des konventionellen Präsentationstexts.
|
FromString(const char *str, size_t strLen, IPAddress & output)
|
bool
Scannen Sie die IP-Adresse des konventionellen Präsentationstexts.
|
MakeIPv4Broadcast(void)
|
Erstellen Sie eine IPv4-Broadcastadresse.
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
|
Erstellen einer IPv6-Multicast-Adresse aus ihren Teilen.
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, uint32_t aGroupId)
|
Erstellen einer IPv6-Multicast-Adresse aus ihren Teilen.
|
MakeIPv6PrefixMulticast(uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId)
|
Erstellt eine vorübergehende IPv6-Multicast-Adresse mit Präfixen aus ihren Teilen.
|
MakeIPv6TransientMulticast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
|
Erstellen Sie aus ihren Teilen eine vorübergehende IPv6-Multicast-Adresse.
|
MakeIPv6WellKnownMulticast(uint8_t aScope, uint32_t aGroupId)
|
Erstellen einer bekannten IPv6-Multicast-Adresse aus ihren Teilen.
|
MakeLLA(uint64_t interfaceId)
|
Erstellen Sie eine Link-Local-IPv6-Adresse (LL) aus ihrer IID.
|
MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
|
Konstruiert eine eindeutige IPv6-Adresse (unique-local address, ULA) aus ihren Teilen.
|
ReadAddress(const uint8_t *& p, IPAddress & output)
|
void
Gibt die IP-Adresse in der Standardnetzwerkdarstellung aus.
|
Öffentliche Attribute
Adr
uint32_t Addr[4]
Intransparentes Wort-Array, das IP-Adressen enthält (unabhängig von der Protokollversion)
IPv6-Adressen verwenden alle 128 Bit, aufgeteilt in vier 32-Bit-Netzwerk-Ganzzahlen ohne Vorzeichen in Bytereihenfolge. IPv4-Adressen sind V4COMPAT, d.h., die ersten drei Wörter sind null und das vierte Wort enthält die IPv4-Adresse in Netzwerk-Byte-Reihenfolge.
Öffentliche statische Attribute
Beliebig
IPAddress Any
Das nicht näher bestimmten, nicht spezifizierten IP-Adressobjekt.
Dieses Objekt wird als Konstante für Äquivalenzvergleiche verwendet. Sie darf nicht von Nutzern der Nest Inet Layer geändert werden.
Öffentliche Funktionen
GlobalId
uint64_t GlobalId( void ) const
Extrahieren Sie den globalen 16-Bit-Netzwerk-Identifikator einer IPv6-UDA-Adresse.
Verwenden Sie diese Methode mit einer eindeutigen IPv6-Adresse (unique-local address, ULA), um die globale Netzwerkkennung zu extrahieren. Das sind die 40 Bits direkt nach dem Distinguished ULA-Netzwerkpräfix, z. B. fd00::/8. Mit anderen Worten: Die globale Netzwerkkennung befindet sich in den fünf Bytes vom zweiten bis sechsten Byte der Adresse.
Details | |
---|---|
Rückgabe |
Globale 40-Bit-Netzwerkkennung oder null, wenn die IP-Adresse keine eindeutige lokale IPv6-Adresse ist.
|
InterfaceId
uint64_t InterfaceId( void ) const
Extrahieren Sie die IID einer IPv6-UDA-Adresse.
Verwenden Sie diese Methode mit einer eindeutigen IPv6-Adresse (unique-local address, ULA), um den Identifier Identifier (IID) zu extrahieren. Das sind die am wenigsten wichtigen 64 Bit der Adresse.
Details | |
---|---|
Rückgabe |
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.
Mit dieser Methode können Sie prüfen, ob die Adresse zur IPv4-Adressfamilie gehört. Hinweis: Die nicht angegebene Adresse ist keine IPv4-Adresse.
Details | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsIPv4Broadcast
bool IsIPv4Broadcast( void ) const
Testen Sie, ob die Adresse IPv4-Broadcast ist.
Mit dieser Methode können Sie prüfen, ob die Adresse die spezielle IPv4-Broadcastadresse ist.
Details | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsIPv4Multicast
bool IsIPv4Multicast( void ) const
Testen Sie, ob die Adresse eine IPv4-Multicast-Adresse ist.
Mit dieser Methode können Sie prüfen, ob die Adresse eine IPv4-Multicast-Adresse ist.
Details | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsIPv6
bool IsIPv6( void ) const
Testen Sie, ob die Adresse IPv6-kompatibel ist.
Mit dieser Methode können Sie prüfen, ob die Adresse zur IPv6-Adressfamilie gehört. Hinweis: Die nicht angegebene Adresse ist keine IPv6-Adresse.
Details | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsIPv6GlobalUnicast
bool IsIPv6GlobalUnicast( void ) const
Testen, ob die Adresse eine globale IPv6-Unicast-Adresse ist.
Verwenden Sie diese Methode, um zu prüfen, ob die Adresse zur IPv6-Adressfamilie gehört und das globale Unicast-Adresspräfix hat.
Details | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsIPv6LinkLocal
bool IsIPv6LinkLocal( void ) const
Testen Sie, ob die Adresse die Link-Local-IPv6-Adresse (LL) ist.
Mit dieser Methode können Sie prüfen, ob die Adresse zur IPv6-Adressfamilie gehört und das reservierte IPv6-Link-Local-Adresspräfix hat.
Details | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsIPv6Multicast
bool IsIPv6Multicast( void ) const
Testen Sie, ob die Adresse eine IPv6-Multicast-Adresse ist.
Mit dieser Methode können Sie prüfen, ob die Adresse zur IPv6-Adressfamilie gehört und das reservierte IPv6-Multicast-Adresspräfix hat.
Details | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsIPv6ULA
bool IsIPv6ULA( void ) const
Testen Sie, ob die Adresse eine eindeutige IPv6-Adresse (Unique-Local Address, ULA) ist.
Mit dieser Methode können Sie prüfen, ob die Adresse zur IPv6-Adressfamilie gehört und das reservierte eindeutige IPv6-Adresspräfix hat.
Details | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsMulticast
bool IsMulticast( void ) const
Testen Sie, ob die Adresse IPv4- oder IPv6-Multicast ist.
Mit dieser Methode können Sie prüfen, ob die Adresse zur IPv4- oder IPv6-Adressfamilie gehört und das reservierte IPv4- oder IPv6-Multicast-Adresspräfix hat.
Details | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
Subnetz
uint16_t Subnet( void ) const
Extrahieren Sie die 16-Bit-Subnetz-ID einer IPv6-UDA-Adresse.
Verwenden Sie diese Methode mit einer eindeutigen lokalen IPv6-Adresse (unique-local address, ULA), um die Subnetzkennung zu extrahieren. Dabei handelt es sich um die niedrigstwertigen 16 Bit des Netzwerkpräfixes. Das Netzwerkpräfix sind die höchstwertigen 64 Bit der Adresse. Mit anderen Worten, die Subnetzkennung befindet sich im 7. und 8. Byte einer 16-Byte-Adresse.
Details | |
---|---|
Rückgabe |
16-Bit-Subnetz-ID oder null, wenn die IP-Adresse keine eindeutige lokale IPv6-Adresse ist.
|
ToIPv4
ip4_addr_t ToIPv4( void ) const
Extrahieren Sie die IPv4-Adresse als Plattformdatenstruktur.
Verwenden Sie nach Möglichkeit ToIPv4() const
, um den Inhalt als IPv4-Adresse zu extrahieren. IPv6-Adressen und die nicht angegebene Adresse werden als 0.0.0.0
extrahiert.
Das Ergebnis ist entweder struct in_addr
(bei POSIX) oder ip4_addr_t
(bei LwIP).
Details | |
---|---|
Rückgabe |
Die gekapselte IPv4-Adresse oder
0.0.0.0 , wenn die Adresse entweder nicht angegeben ist oder keine IPv4-Adresse ist. |
ToIPv4
struct in_addr ToIPv4( void ) const
ToIPv6
ip6_addr_t ToIPv6( void ) const
Extrahieren Sie die IPv6-Adresse als Plattformdatenstruktur.
Extrahieren Sie nach Möglichkeit ToIPv6() const
, um den Inhalt als IPv6-Adresse zu extrahieren. IPv4-Adressen und die nicht angegebene Adresse werden als [::]
extrahiert.
Das Ergebnis ist entweder struct in6_addr
(bei POSIX) oder ip6_addr_t
(bei LwIP).
Details | |
---|---|
Rückgabe |
Die gekapselte IPv4-Adresse oder
[::] 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
Gibt die IP-Adresse im herkömmlichen Textpräsentationsformat aus.
Verwenden Sie ToString(char *buf, uint32_t bufSize) const
, um die herkömmliche Textdarstellungsform der IP-Adresse in den Speicher unter buf
zu schreiben und um bis zu bufSize
Byte zu erweitern, einschließlich des NUL-Beendigungszeichens.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
Hinweis: Nicht RFC-5952-konform auf einigen Plattformen. Insbesondere darf gemäß Abschnitt 4.2 keine Nullkomprimierung angewendet werden.
Details | |
---|---|
Rückgabe |
Das Argument
buf , wenn kein Formatierungsfehler vorliegt, oder andernfalls null. |
Typ
IPAddressType Type( void ) const
Extrahieren Sie den Typ der IP-Adresse.
Verwenden Sie diese Methode, um einen Wert des Aufzählungstyps IPAddressType
zurückzugeben, der den Typ der IP-Adresse angibt.
Details | |||||||
---|---|---|---|---|---|---|---|
Rückgabewerte |
|
WriteAddress
void WriteAddress( uint8_t *& p ) const
Gibt die IP-Adresse in der Standardnetzwerkdarstellung aus.
Verwenden Sie WriteAddress(uint8_t *&p)
, um die IP-Adresse im Binärformat zu codieren, das durch RFC 4291 für IPv6-Adressen definiert wird. IPv4-Adressen werden gemäß Abschnitt 2.5.5.1 „IPv4-kompatible IPv6-Adressen“ (V4COMPAT) codiert.
Details | |||
---|---|---|---|
Parameter |
|
Operator!=
bool operator!=( const IPAddress & other ) const
Vergleichen Sie diese IP-Adresse auf Inäquivalenz mit einer anderen.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabewerte |
|
Operator=
IPAddress & operator=( const IPAddress & other )
Herkömmlicher Zuweisungsoperator.
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Ein Verweis auf dieses Objekt.
|
Operator==
bool operator==( const IPAddress & other ) const
Vergleichen Sie diese IP-Adresse zur Äquivalenz mit einer anderen IP-Adresse.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabewerte |
|
Öffentliche statische Funktionen
FromIPv4
IPAddress FromIPv4( const ip4_addr_t & addr )
Dies ist eine überlastete Member-Funktion, die der Einfachheit halber dient. Sie unterscheidet sich von der obigen Funktion nur durch die akzeptierten Argumente.
FromIPv4
IPAddress FromIPv4( const struct in_addr & addr )
Fügen Sie die IPv4-Adresse aus einer Plattformdatenstruktur ein.
Verwenden Sie FromIPv4(const ip4_addr_t &addr)
, um addr
als IPv4-Adresse einzufügen.
Das Argument addr
ist entweder vom Typ const struct in_addr&
(bei POSIX) oder const ip4_addr_t&
(unter LwIP).
Details | |
---|---|
Rückgabe |
Die erstellte IP-Adresse.
|
FromIPv6
IPAddress FromIPv6( const ip6_addr_t & addr )
Dies ist eine überlastete Member-Funktion, die der Einfachheit halber dient. Sie unterscheidet sich von der obigen Funktion nur durch die akzeptierten Argumente.
FromIPv6
IPAddress FromIPv6( const struct in6_addr & addr )
Fügen Sie die IPv6-Adresse aus einer Plattformdatenstruktur ein.
Verwenden Sie FromIPv6(const ip6_addr_t &addr)
, um addr
als IPv6-Adresse einzufügen.
Das Argument addr
ist entweder vom Typ const struct in6_addr&
(bei POSIX) oder const ip6_addr_t&
(unter LwIP).
Details | |
---|---|
Rückgabe |
Die erstellte IP-Adresse.
|
FromSockAddr
IPAddress FromSockAddr( const struct sockaddr & sockaddr )
IPv6-Adresse aus einer POSIX-struct sockaddr&
einfügen
Verwenden Sie FromSockAddr(const struct sockaddr& sockaddr)
, um sockaddr.sa_addr
als IPv6-Adresse einzufügen.
Details | |
---|---|
Rückgabe |
Die erstellte IP-Adresse.
|
FromString
bool FromString( const char *str, IPAddress & output )
Scannen Sie die IP-Adresse des konventionellen Präsentationstexts.
Verwenden Sie FromString(const char *str, IPAddress& output)
, um eine IP-Adresse durch Scannen der herkömmlichen Textpräsentation unter str
zu überschreiben.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
Details | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
FromString
bool FromString( const char *str, size_t strLen, IPAddress & output )
Scannen Sie die IP-Adresse des konventionellen Präsentationstexts.
Verwenden Sie FromString(const char *str, size_t strLen, IPAddress& output)
, um eine IP-Adresse durch Scannen der herkömmlichen Textpräsentation unter str
zu überschreiben.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
Details | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
MakeIPv4Broadcast
IPAddress MakeIPv4Broadcast( void )
Erstellen Sie eine IPv4-Broadcastadresse.
Details | |
---|---|
Rückgabe |
Die erstellte IP-Adresse.
|
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES] )
Erstellen einer IPv6-Multicast-Adresse aus ihren Teilen.
Verwenden Sie MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
, um eine IPv6-Multicast-Adresse mit flags
für den Routingbereich scope
und Gruppenkennungs-Oktette groupId
zu erstellen.
Details | |
---|---|
Rückgabe |
Die erstellte IP-Adresse.
|
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, uint32_t aGroupId )
Erstellen einer IPv6-Multicast-Adresse aus ihren Teilen.
Verwenden Sie MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId)
, um eine IPv6-Multicast-Adresse mit flags
für den Routingbereich scope
und die Gruppenkennung groupId
zu erstellen.
Details | |
---|---|
Rückgabe |
Die erstellte IP-Adresse.
|
MakeIPv6PrefixMulticast
IPAddress MakeIPv6PrefixMulticast( uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId )
Erstellt eine vorübergehende IPv6-Multicast-Adresse mit Präfixen aus ihren Teilen.
Verwenden Sie MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId)
, um eine vorübergehende IPv6-Multicast-Adresse mit einem Präfix für den Routingbereich scope
und Gruppenkennungs-Oktetts groupId
zu erstellen, die durch das Präfix prefix
mit einer Länge von prefixlen
Bit qualifiziert sind.
Details | |
---|---|
Rückgabe |
Die erstellte IP-Adresse.
|
MakeIPv6TransientMulticast
IPAddress MakeIPv6TransientMulticast( uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES] )
Erstellen Sie aus ihren Teilen eine vorübergehende IPv6-Multicast-Adresse.
Verwenden Sie MakeIPv6TransientMulticast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
, um eine vorübergehende IPv6-Multicast-Adresse mit flags
für den Routingbereich scope
und die Gruppenkennungs-Oktette groupId
zu erstellen.
Details | |
---|---|
Rückgabe |
Die erstellte IP-Adresse.
|
MakeIPv6WellKnownMulticast
IPAddress MakeIPv6WellKnownMulticast( uint8_t aScope, uint32_t aGroupId )
Erstellen einer bekannten IPv6-Multicast-Adresse aus ihren Teilen.
Verwenden Sie MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId)
, um eine IPv6-Multicast-Adresse für den Routingbereich scope
und die Gruppenkennung groupId
zu erstellen.
Details | |
---|---|
Rückgabe |
Die erstellte IP-Adresse.
|
MakeLLA
IPAddress MakeLLA( uint64_t interfaceId )
Erstellen Sie eine Link-Local-IPv6-Adresse (LL) aus ihrer IID.
Verwenden Sie MakeLLA(uint64_t interfaceId)
, um eine Link-Local-Adresse (LL) von IPv6 mit der Schnittstellenkennung interfaceId
zu erstellen.
Details | |
---|---|
Rückgabe |
Die erstellte IP-Adresse.
|
MakeULA
IPAddress MakeULA( uint64_t globalId, uint16_t subnet, uint64_t interfaceId )
Konstruiert eine eindeutige IPv6-Adresse (unique-local address, ULA) aus ihren Teilen.
Verwenden Sie MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
, um eine eindeutige lokale Adresse mit der globalen Netzwerk-ID globalId
, der Subnetz-ID subnet
und der Schnittstellen-ID (IID) interfaceId
zu erstellen.
Details | |
---|---|
Rückgabe |
Die erstellte IP-Adresse.
|
ReadAddress
void ReadAddress( const uint8_t *& p, IPAddress & output )
Gibt die IP-Adresse in der Standardnetzwerkdarstellung aus.
Decodieren Sie mit ReadAddress(uint8_t *&p, IPAddress &output)
die IP-Adresse unter p
zum Objekt output
.
Details | |||||
---|---|---|---|---|---|
Parameter |
|