nl:: Inet:: IPAddress
#include <src/inet/IPAddress.h>
Internet Protocol-Adresse.
Zusammenfassung
Die Nest-Inet-Schicht verwendet Objekte dieser Klasse, um Internetprotokolladressen (unabhängig von der Protokollversion) darzustellen.
Öffentliche Attribute |
|
---|---|
Addr[4]
|
uint32_t
Undurchsichtiges Wortarray zur Aufnahme von IP-Adressen (unabhängig von der Protokollversion)
|
Öffentliche statische Attribute |
|
---|---|
Any
|
Das unterschiedene nicht spezifizierte IP-Adressobjekt.
|
Öffentliche Funktionen |
|
---|---|
GlobalId(void) const
|
uint64_t
Extrahieren Sie die globale 16-Bit-Netzwerk-ID 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 IPv6-Adresse 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-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 IP-Adresse auf Ungleichheiten.
|
operator=(const IPAddress & other)
|
Konventioneller Zuweisungsoperator.
|
operator==(const IPAddress & other) const
|
bool
Vergleichen Sie diese IP-Adresse mit einer anderen.
|
Öffentliche statische Funktionen |
|
---|---|
FromIPv4(const ip4_addr_t & addr)
|
|
FromIPv4(const struct in_addr & addr)
|
IPv4-Adresse aus einer Plattformdatenstruktur einschleusen
|
FromIPv6(const ip6_addr_t & addr)
|
|
FromIPv6(const struct in6_addr & addr)
|
IPv6-Adresse aus einer Plattformdatenstruktur einschleusen
|
FromSockAddr(const struct sockaddr & sockaddr)
|
IPv6-Adresse aus einem POSIX-
struct sockaddr& einschleusen |
FromString(const char *str, IPAddress & output)
|
bool
Scannen Sie die IP-Adresse aus dem herkömmlichen Präsentationstext.
|
FromString(const char *str, size_t strLen, IPAddress & output)
|
bool
Scannen Sie die IP-Adresse aus dem herkömmlichen Präsentationstext.
|
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])
|
IPv6-Multicast-Adresse aus ihren Teilen erstellen
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, uint32_t aGroupId)
|
IPv6-Multicast-Adresse aus ihren Teilen erstellen
|
MakeIPv6PrefixMulticast(uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId)
|
Erstellen 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])
|
Eine vorübergehende IPv6-Multicast-Adresse aus ihren Teilen erstellen.
|
MakeIPv6WellKnownMulticast(uint8_t aScope, uint32_t aGroupId)
|
Aus ihren Teilen eine bekannte IPv6-Multicast-Adresse erstellen
|
MakeLLA(uint64_t interfaceId)
|
Eine IPv6-Link-Local-Adresse (LL) aus ihrer IID konstruieren.
|
MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
|
Erstellen Sie aus ihren Teilen eine eindeutige IPv6-Adresse (Unique-Local-IP-Adresse).
|
ReadAddress(const uint8_t *& p, IPAddress & output)
|
void
Geben Sie die IP-Adresse in der Standard-Netzwerkdarstellung aus.
|
Öffentliche Attribute
Addr
uint32_t Addr[4]
Undurchsichtiges Wortarray zur Aufnahme von IP-Adressen (unabhängig von der Protokollversion)
Bei IPv6-Adressen werden alle 128-Bit-Zahlen in vier geordnete 32-Bit-Ganzzahlen ohne Vorzeichen verwendet. 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 unterschiedene nicht spezifizierte IP-Adressobjekt.
Dieses Objekt wird als Konstante für Äquivalenzvergleiche verwendet. Es darf nicht von Nutzern der Nest-Ebene geändert werden.
Öffentliche Funktionen
GlobalId
uint64_t GlobalId( void ) const
Extrahieren Sie die globale 16-Bit-Netzwerk-ID einer IPv6-ULA-Adresse.
Verwenden Sie diese Methode mit einer Unique-Local-IPv6-Adresse (ULA), um die globale Netzwerkkennung zu extrahieren, also 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 Byte zwischen dem zweiten und sechsten Byte der Adresse.
Details | |
---|---|
Rückgabe |
Globale 40-Bit-Netzwerk-ID oder null, wenn die IP-Adresse keine eindeutige IPv6-Adresse ist.
|
InterfaceId
uint64_t InterfaceId( void ) const
Extrahieren Sie die IID einer IPv6-ULA-Adresse.
Verwenden Sie diese Methode mit einer eindeutigen IPv6-Adresse (ULA), um den Identifier Identifier (IID) zu extrahieren. Das sind die niedrigstwertigen 64 Bits der Adresse.
Details | |
---|---|
Rückgabe |
64-Bit-Schnittstellenkennung oder null, wenn die IP-Adresse keine eindeutige 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. Beachten Sie, dass die nicht angegebene Adresse keine IPv4-Adresse ist.
Details | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsIPv4Broadcast
bool IsIPv4Broadcast( void ) const
Testen Sie, ob die Adresse IPv4-Broadcast ist.
Verwenden Sie diese Methode, um zu prüfen, ob die Adresse die spezielle IPv4-Broadcast-Adresse ist.
Details | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsIPv4Multicast
bool IsIPv4Multicast( void ) const
Testen Sie, ob die Adresse IPv4-Multicast 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. Beachten Sie, dass die nicht angegebene Adresse keine IPv6-Adresse ist.
Details | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsIPv6GlobalUnicast
bool IsIPv6GlobalUnicast( void ) const
Testen Sie, ob die Adresse eine globale IPv6-Unicast-Adresse ist.
Mit dieser Methode können Sie 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 eine IPv6-Link-Local-Adresse (LL) ist.
Mit dieser Methode können Sie prüfen, ob die Adresse zur IPv6-Adressfamilie gehört und das reservierte Link-Local-Adresspräfix von IPv6 hat.
Details | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsIPv6Multicast
bool IsIPv6Multicast( void ) const
Testen Sie, ob die Adresse IPv6-Multicast 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 ist.
Mit dieser Methode können Sie prüfen, ob die Adresse zur IPv6-Adressfamilie gehört und das reservierte Präfix für eindeutige IPv6-Adressen hat.
Details | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
IsMulticast
bool IsMulticast( void ) const
Testen Sie, ob die Adresse IPv4- oder IPv6-Multicast ist.
Prüfen Sie mit dieser Methode, 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-ULA-Adresse.
Verwenden Sie diese Methode mit einer eindeutigen IPv6-Adresse (ULA), um die Subnetzkennung zu extrahieren. Das sind die niedrigstwertigen 16 Bits des Netzwerkpräfixes. Das Netzwerkpräfix umfasst die höchstwertigen 64 Bits der Adresse. Mit anderen Worten, die Subnetzkennung befindet sich im 7. und 8. Byte einer 16-Byte-Adresse.
Details | |
---|---|
Rückgabe |
16-Bit-Subnetzkennung oder null, wenn die IP-Adresse keine eindeutige 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 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.
Verwenden 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
ZuString
char * ToString( char *buf, uint32_t bufSize ) const
Geben Sie die IP-Adresse im herkömmlichen Textdarstellungsformat aus.
Verwenden Sie ToString(char *buf, uint32_t bufSize) const
, um die konventionelle Textdarstellungsform der IP-Adresse in den Arbeitsspeicher unter buf
zu schreiben und bis zu bufSize
Byte, einschließlich des NUL-Beendigungszeichens, zu erweitern.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
Hinweis: Auf einigen Plattformen nicht RFC 5952-konform. Eine Null-Komprimierung darf gemäß Abschnitt 4.2 nicht angewendet werden.
Details | |
---|---|
Rückgabe |
Das Argument
buf , wenn kein Formatierungsfehler vorhanden ist, andernfalls Null. |
Typ
IPAddressType Type( void ) const
Extrahieren Sie den Typ der IP-Adresse.
Verwenden Sie diese Methode, um einen Wert des Enum-Typs IPAddressType
zurückzugeben, der den Typ der IP-Adresse angibt.
Details | |||||||
---|---|---|---|---|---|---|---|
Rückgabewerte |
|
WriteAddress
void WriteAddress( uint8_t *& p ) const
Geben Sie die IP-Adresse in der Standard-Netzwerkdarstellung aus.
Codieren Sie die IP-Adresse mit WriteAddress(uint8_t *&p)
im Binärformat, das durch RFC 4291 für IPv6-Adressen definiert ist. IPv4-Adressen sind gemäß Abschnitt 2.5.5.1 "IPv4-kompatibel
IPv6-Adresse (V4COMPAT)
Details | |||
---|---|---|---|
Parameter |
|
operator!=
bool operator!=( const IPAddress & other ) const
Vergleichen Sie diese IP-Adresse mit einer anderen IP-Adresse auf Ungleichheiten.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabewerte |
|
operator=
IPAddress & operator=( const IPAddress & other )
Konventioneller Zuweisungsoperator.
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Ein Verweis auf dieses Objekt.
|
Operator==
bool operator==( const IPAddress & other ) const
Vergleichen Sie diese IP-Adresse mit einer anderen.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabewerte |
|
Öffentliche statische Funktionen
FromIPv4
IPAddress FromIPv4( const ip4_addr_t & addr )
Dies ist eine überlastete Mitgliederfunktion, die der Einfachheit halber zur Verfügung gestellt wird. Sie unterscheidet sich von der obigen Funktion nur darin, welche Argumente sie akzeptiert.
FromIPv4
IPAddress FromIPv4( const struct in_addr & addr )
IPv4-Adresse aus einer Plattformdatenstruktur einschleusen
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&
(bei LwIP).
Details | |
---|---|
Rückgabe |
Die erstellte IP-Adresse.
|
FromIPv6
IPAddress FromIPv6( const ip6_addr_t & addr )
Dies ist eine überlastete Mitgliederfunktion, die der Einfachheit halber zur Verfügung gestellt wird. Sie unterscheidet sich von der obigen Funktion nur darin, welche Argumente sie akzeptiert.
FromIPv6
IPAddress FromIPv6( const struct in6_addr & addr )
IPv6-Adresse aus einer Plattformdatenstruktur einschleusen
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&
(bei LwIP).
Details | |
---|---|
Rückgabe |
Die erstellte IP-Adresse.
|
FromSockAddr
IPAddress FromSockAddr( const struct sockaddr & sockaddr )
IPv6-Adresse aus einem POSIX-struct sockaddr&
einschleusen
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 aus dem herkömmlichen Präsentationstext.
Verwenden Sie FromString(const char *str, IPAddress& output)
, um eine IP-Adresse durch Scannen einer 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 aus dem herkömmlichen Präsentationstext.
Verwenden Sie FromString(const char *str, size_t strLen, IPAddress& output)
, um eine IP-Adresse durch Scannen einer 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] )
IPv6-Multicast-Adresse aus ihren Teilen erstellen
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 die Gruppenkennungs-Oktette groupId
zu erstellen.
Details | |
---|---|
Rückgabe |
Die erstellte IP-Adresse.
|
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, uint32_t aGroupId )
IPv6-Multicast-Adresse aus ihren Teilen erstellen
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 Gruppen-ID 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 )
Erstellen Sie eine vorübergehende IPv6-Multicast-Adresse mit Präfix 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 dem Routingbereich scope
und den Oktetten groupId
der Gruppenkennung 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] )
Eine vorübergehende IPv6-Multicast-Adresse aus ihren Teilen erstellen.
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 )
Aus ihren Teilen eine bekannte IPv6-Multicast-Adresse erstellen
Verwenden Sie MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId)
, um eine IPv6-Multicast-Adresse für den Routingbereich scope
und die Gruppen-ID groupId
zu erstellen.
Details | |
---|---|
Rückgabe |
Die erstellte IP-Adresse.
|
MakeLLA
IPAddress MakeLLA( uint64_t interfaceId )
Eine IPv6-Link-Local-Adresse (LL) aus ihrer IID konstruieren.
Verwenden Sie MakeLLA(uint64_t interfaceId)
, um eine IPv6-Link-Local-Adresse (LL) 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 )
Erstellen Sie aus ihren Teilen eine eindeutige IPv6-Adresse (Unique-Local-IP-Adresse).
Verwenden Sie MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
, um eine eindeutige lokale Adresse (ULA) 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 )
Geben Sie die IP-Adresse in der Standard-Netzwerkdarstellung aus.
Decodieren Sie die IP-Adresse unter p
mit ReadAddress(uint8_t *&p, IPAddress &output)
im Objekt output
.
Details | |||||
---|---|---|---|---|---|
Parameter |
|