nl:: Inet:: IPAddress
#include <src/inet/IPAddress.h>
Indirizzo IP.
Riepilogo
Il livello Nest Inet utilizza gli oggetti di questa classe per rappresentare gli indirizzi di protocollo Internet (indipendentemente dalla versione del protocollo).
Attributi pubblici |
|
---|---|
Addr[4]
|
uint32_t
Array di parole opaco per contenere indirizzi IP (indipendentemente dalla versione del protocollo)
|
Attributi statici pubblici |
|
---|---|
Any
|
L'oggetto dell'indirizzo IP non specificato distinto.
|
Funzioni pubbliche |
|
---|---|
GlobalId(void) const
|
uint64_t
Estrai l'identificatore di rete globale a 16 bit di un indirizzo ULA IPv6.
|
InterfaceId(void) const
|
uint64_t
Estrai l'IID di un indirizzo IPv6 ULA.
|
IsIPv4(void) const
|
bool
Verifica se l'indirizzo è compatibile con IPv4.
|
IsIPv4Broadcast(void) const
|
bool
Verifica se l'indirizzo è trasmesso su IPv4.
|
IsIPv4Multicast(void) const
|
bool
Verifica se l'indirizzo è multicast IPv4.
|
IsIPv6(void) const
|
bool
Verifica se l'indirizzo è compatibile con IPv6.
|
IsIPv6GlobalUnicast(void) const
|
bool
Verifica se l'indirizzo è un indirizzo unicast globale IPv6.
|
IsIPv6LinkLocal(void) const
|
bool
Verifica se l'indirizzo è un indirizzo IPv6 locale rispetto al collegamento (LL).
|
IsIPv6Multicast(void) const
|
bool
Verifica se l'indirizzo è multicast IPv6.
|
IsIPv6ULA(void) const
|
bool
Verifica se l'indirizzo è un indirizzo IPv6 univoco (ULA).
|
IsMulticast(void) const
|
bool
Verifica se l'indirizzo è multicast IPv4 o IPv6.
|
Subnet(void) const
|
uint16_t
Estrai l'identificatore di subnet a 16 bit di un indirizzo ULA IPv6.
|
ToIPv4(void) const
|
Estrai l'indirizzo IPv4 come struttura di dati della piattaforma.
|
ToIPv4(void) const
|
struct in_addr
|
ToIPv6(void) const
|
ip6_addr_t
Estrarre l'indirizzo IPv6 come struttura di dati della piattaforma.
|
ToIPv6(void) const
|
struct in6_addr
|
ToString(char *buf, uint32_t bufSize) const
|
char *
Emetti l'indirizzo IP nel formato di presentazione testuale convenzionale.
|
Type(void) const
|
IPAddressType
Estrai il tipo di indirizzo IP.
|
WriteAddress(uint8_t *& p) const
|
void
Emetti l'indirizzo IP nella rappresentazione di rete standard.
|
operator!=(const IPAddress & other) const
|
bool
Confronta questo indirizzo IP con un altro per determinare l'inequivalenza.
|
operator=(const IPAddress & other)
|
Operatore di assegnazione convenzionale.
|
operator==(const IPAddress & other) const
|
bool
Confronta questo indirizzo IP con un altro per l'equivalenza.
|
Funzioni statiche pubbliche |
|
---|---|
FromIPv4(const ip4_addr_t & addr)
|
|
FromIPv4(const struct in_addr & addr)
|
Inserisci l'indirizzo IPv4 da una struttura di dati della piattaforma.
|
FromIPv6(const ip6_addr_t & addr)
|
|
FromIPv6(const struct in6_addr & addr)
|
Inserisci l'indirizzo IPv6 da una struttura di dati della piattaforma.
|
FromSockAddr(const struct sockaddr & sockaddr)
|
Inserisci l'indirizzo IPv6 da un
struct sockaddr& POSIX |
FromString(const char *str, IPAddress & output)
|
bool
Eseguire la scansione dell'indirizzo IP dal testo di presentazione convenzionale.
|
FromString(const char *str, size_t strLen, IPAddress & output)
|
bool
Eseguire la scansione dell'indirizzo IP dal testo di presentazione convenzionale.
|
MakeIPv4Broadcast(void)
|
Costruire un indirizzo di trasmissione IPv4.
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
|
Crea un indirizzo multicast IPv6 dalle sue parti.
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, uint32_t aGroupId)
|
Crea un indirizzo multicast IPv6 dalle sue parti.
|
MakeIPv6PrefixMulticast(uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId)
|
Costruisci un prefisso IPv6 temporaneo dalle sue parti.
|
MakeIPv6TransientMulticast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
|
Costruisci un indirizzo IPv6 multicast temporaneo a partire dalle sue parti.
|
MakeIPv6WellKnownMulticast(uint8_t aScope, uint32_t aGroupId)
|
Costruisci un indirizzo IPv6 multicast noto dalle sue parti.
|
MakeLLA(uint64_t interfaceId)
|
Crea un indirizzo IPv6 locale rispetto al collegamento (LL) dal relativo IID.
|
MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
|
Costruisci un indirizzo IPv6 Unique-Local (ULA) dalle sue parti.
|
ReadAddress(const uint8_t *& p, IPAddress & output)
|
void
Emetti l'indirizzo IP nella rappresentazione di rete standard.
|
Attributi pubblici
Indirizzo
uint32_t Addr[4]
Array di parole opaco per contenere indirizzi IP (indipendentemente dalla versione del protocollo)
L'indirizzo IPv6 usa tutti i 128 bit suddivisi in quattro numeri interi senza segno ordinati a 32 bit di rete. Gli indirizzi IPv4 sono V4COMPAT, cioè le prime tre parole sono zero e la quarta parola contiene l'indirizzo IPv4 in ordine di byte di rete.
Attributi statici pubblici
Qualsiasi
IPAddress Any
L'oggetto dell'indirizzo IP non specificato distinto.
Questo oggetto viene utilizzato come costante per i confronti di equivalenze. Non deve essere modificato dagli utenti di Nest Inet Layer.
Funzioni pubbliche
GlobalId
uint64_t GlobalId( void ) const
Estrai l'identificatore di rete globale a 16 bit di un indirizzo ULA IPv6.
Usa questo metodo con un indirizzo IPv6 univoco locale (ULA) per estrarre l'identificatore di rete globale, ovvero i 40 bit immediatamente successivi al prefisso di rete ULA distinto, ad esempio fd00::/8. In altre parole, l'identificatore di rete globale si trova nei cinque byte dal 2° al 6° byte dell'indirizzo.
Dettagli | |
---|---|
Restituisce |
Identificatore di rete globale a 40 bit o zero se l'indirizzo IP non è un indirizzo IPv6 univoco locale.
|
InterfaceId
uint64_t InterfaceId( void ) const
Estrai l'IID di un indirizzo IPv6 ULA.
Usa questo metodo con un indirizzo IPv6 univoco locale (ULA) per estrarre l'identificatore dell'identificatore (IID), che corrisponde ai 64 bit meno significativi dell'indirizzo.
Dettagli | |
---|---|
Restituisce |
L'identificatore dell'interfaccia a 64 bit o zero se l'indirizzo IP non è un indirizzo IPv6 univoco locale.
|
IsIPv4
bool IsIPv4( void ) const
Verifica se l'indirizzo è compatibile con IPv4.
Utilizza questo metodo per verificare se l'indirizzo appartiene alla famiglia di indirizzi IPv4. Nota: l'indirizzo non specificato non è un indirizzo IPv4.
Dettagli | |||||
---|---|---|---|---|---|
Valori restituiti |
|
IsIPv4Broadcast
bool IsIPv4Broadcast( void ) const
Verifica se l'indirizzo è trasmesso su IPv4.
Utilizza questo metodo per verificare se l'indirizzo è l'indirizzo di trasmissione IPv4 per scopi speciali.
Dettagli | |||||
---|---|---|---|---|---|
Valori restituiti |
|
IsIPv4Multicast
bool IsIPv4Multicast( void ) const
Verifica se l'indirizzo è multicast IPv4.
Utilizza questo metodo per verificare se l'indirizzo è un indirizzo multicast IPv4.
Dettagli | |||||
---|---|---|---|---|---|
Valori restituiti |
|
IsIPv6
bool IsIPv6( void ) const
Verifica se l'indirizzo è compatibile con IPv6.
Utilizza questo metodo per verificare se l'indirizzo appartiene alla famiglia di indirizzi IPv6. Nota: l'indirizzo non specificato non è un indirizzo IPv6.
Dettagli | |||||
---|---|---|---|---|---|
Valori restituiti |
|
IsIPv6GlobalUnicast
bool IsIPv6GlobalUnicast( void ) const
Verifica se l'indirizzo è un indirizzo unicast globale IPv6.
Utilizza questo metodo per verificare se l'indirizzo appartiene alla famiglia di indirizzi IPv6 e ha il prefisso dell'indirizzo unicast globale.
Dettagli | |||||
---|---|---|---|---|---|
Valori restituiti |
|
IsIPv6LinkLocal
bool IsIPv6LinkLocal( void ) const
Verifica se l'indirizzo è un indirizzo IPv6 locale rispetto al collegamento (LL).
Utilizza questo metodo per verificare se l'indirizzo appartiene alla famiglia di indirizzi IPv6 e ha il prefisso dell'indirizzo IPv6 riservato e locale rispetto al collegamento.
Dettagli | |||||
---|---|---|---|---|---|
Valori restituiti |
|
IsIPv6Multicast
bool IsIPv6Multicast( void ) const
Verifica se l'indirizzo è multicast IPv6.
Utilizza questo metodo per verificare se l'indirizzo appartiene alla famiglia di indirizzi IPv6 e ha il prefisso dell'indirizzo multicast IPv6 riservato.
Dettagli | |||||
---|---|---|---|---|---|
Valori restituiti |
|
IsIPv6ULA
bool IsIPv6ULA( void ) const
Verifica se l'indirizzo è un indirizzo IPv6 univoco (ULA).
Utilizza questo metodo per verificare se l'indirizzo appartiene alla famiglia di indirizzi IPv6 e ha il prefisso dell'indirizzo univoco locale IPv6 riservato.
Dettagli | |||||
---|---|---|---|---|---|
Valori restituiti |
|
IsMulticast
bool IsMulticast( void ) const
Verifica se l'indirizzo è multicast IPv4 o IPv6.
Utilizza questo metodo per verificare se l'indirizzo appartiene alla famiglia di indirizzi IPv4 o IPv6 e ha il prefisso dell'indirizzo multicast IPv4 o IPv6 riservato.
Dettagli | |||||
---|---|---|---|---|---|
Valori restituiti |
|
Subnet
uint16_t Subnet( void ) const
Estrai l'identificatore di subnet a 16 bit di un indirizzo ULA IPv6.
Usa questo metodo con un indirizzo IPv6 univoco locale (ULA) per estrarre l'identificatore di subnet, ovvero i 16 bit meno significativi del prefisso di rete. Il prefisso di rete è i 64 bit più significativi dell'indirizzo. In altre parole, l'identificatore di subnet si trova nel 7° e 8° byte di un indirizzo di 16 byte.
Dettagli | |
---|---|
Restituisce |
Identificatore di subnet a 16 bit o zero se l'indirizzo IP non è un indirizzo IPv6 univoco locale.
|
ToIPv4
ip4_addr_t ToIPv4( void ) const
Estrai l'indirizzo IPv4 come struttura di dati della piattaforma.
Usa ToIPv4() const
per estrarre i contenuti come indirizzo IPv4, se possibile. Gli indirizzi IPv6 e l'indirizzo non specificato vengono estratti come 0.0.0.0
.
Il risultato è di tipo struct in_addr
(su POSIX) o ip4_addr_t
(su LwIP).
Dettagli | |
---|---|
Restituisce |
L'indirizzo IPv4 incapsulato o
0.0.0.0 se l'indirizzo non è specificato o non è un indirizzo IPv4. |
ToIPv4
struct in_addr ToIPv4( void ) const
ToIPv6
ip6_addr_t ToIPv6( void ) const
Estrarre l'indirizzo IPv6 come struttura di dati della piattaforma.
Usa ToIPv6() const
per estrarre i contenuti come indirizzo IPv6, se possibile. Gli indirizzi IPv4 e l'indirizzo non specificato vengono estratti come [::]
.
Il risultato è di tipo struct in6_addr
(su POSIX) o ip6_addr_t
(su LwIP).
Dettagli | |
---|---|
Restituisce |
L'indirizzo IPv4 incapsulato o
[::] 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
Emetti l'indirizzo IP nel formato di presentazione testuale convenzionale.
Usa ToString(char *buf, uint32_t bufSize) const
per scrivere il formato di presentazione testuale convenzionale dell'indirizzo IP sulla memoria situata in buf
e con un'estensione di massimo bufSize
byte, incluso il carattere di terminazione NUL.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
Nota bene: non è compatibile con RFC 5952 su alcune piattaforme. Nello specifico, la compressione zero non può essere applicata secondo quanto indicato nella sezione 4.2.
Dettagli | |
---|---|
Restituisce |
L'argomento
buf se non c'è alcun errore di formattazione o zero in caso contrario. |
Tipo
IPAddressType Type( void ) const
Estrai il tipo di indirizzo IP.
Utilizza questo metodo per restituire un valore del tipo enumerato IPAddressType
per indicare il tipo di indirizzo IP.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Valori restituiti |
|
WriteAddress
void WriteAddress( uint8_t *& p ) const
Emetti l'indirizzo IP nella rappresentazione di rete standard.
Utilizza WriteAddress(uint8_t *&p)
per codificare l'indirizzo IP nel formato binario definito dal documento RFC 4291 per gli indirizzi IPv6. Gli indirizzi IPv4 sono codificati in base alla sezione 2.5.5.1 "Indirizzo IPv6 compatibile con IPv4" (V4COMPAT).
Dettagli | |||
---|---|---|---|
Parametri |
|
operatore!=
bool operator!=( const IPAddress & other ) const
Confronta questo indirizzo IP con un altro per determinare l'inequivalenza.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
operatore=
IPAddress & operator=( const IPAddress & other )
Operatore di assegnazione convenzionale.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
Un riferimento a questo oggetto.
|
operatore==
bool operator==( const IPAddress & other ) const
Confronta questo indirizzo IP con un altro per l'equivalenza.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
Funzioni statiche pubbliche
FromIPv4
IPAddress FromIPv4( const ip4_addr_t & addr )
Questa è una funzione membro sovraccarico, fornita per praticità. Si differenzia dalla funzione precedente solo per gli argomenti che accetta.
FromIPv4
IPAddress FromIPv4( const struct in_addr & addr )
Inserisci l'indirizzo IPv4 da una struttura di dati della piattaforma.
Usa FromIPv4(const ip4_addr_t &addr)
per inserire addr
come indirizzo IPv4.
L'argomento addr
è di tipo const struct in_addr&
(su POSIX) o const ip4_addr_t&
(su LwIP).
Dettagli | |
---|---|
Restituisce |
L'indirizzo IP creato.
|
FromIPv6
IPAddress FromIPv6( const ip6_addr_t & addr )
Questa è una funzione membro sovraccarico, fornita per praticità. Si differenzia dalla funzione precedente solo per gli argomenti che accetta.
FromIPv6
IPAddress FromIPv6( const struct in6_addr & addr )
Inserisci l'indirizzo IPv6 da una struttura di dati della piattaforma.
Usa FromIPv6(const ip6_addr_t &addr)
per inserire addr
come indirizzo IPv6.
L'argomento addr
è di tipo const struct in6_addr&
(su POSIX) o const ip6_addr_t&
(su LwIP).
Dettagli | |
---|---|
Restituisce |
L'indirizzo IP creato.
|
FromSockAddr
IPAddress FromSockAddr( const struct sockaddr & sockaddr )
Inserisci l'indirizzo IPv6 da un struct sockaddr&
POSIX
Usa FromSockAddr(const struct sockaddr& sockaddr)
per inserire sockaddr.sa_addr
come indirizzo IPv6.
Dettagli | |
---|---|
Restituisce |
L'indirizzo IP creato.
|
FromString
bool FromString( const char *str, IPAddress & output )
Eseguire la scansione dell'indirizzo IP dal testo di presentazione convenzionale.
Utilizza FromString(const char *str, IPAddress& output)
per sovrascrivere un indirizzo IP eseguendo la scansione della presentazione di testo convenzionale situata in str
.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
Dettagli | |||||
---|---|---|---|---|---|
Valori restituiti |
|
FromString
bool FromString( const char *str, size_t strLen, IPAddress & output )
Eseguire la scansione dell'indirizzo IP dal testo di presentazione convenzionale.
Utilizza FromString(const char *str, size_t strLen, IPAddress& output)
per sovrascrivere un indirizzo IP eseguendo la scansione della presentazione di testo convenzionale situata in str
.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
Dettagli | |||||
---|---|---|---|---|---|
Valori restituiti |
|
MakeIPv4Broadcast
IPAddress MakeIPv4Broadcast( void )
Costruire un indirizzo di trasmissione IPv4.
Dettagli | |
---|---|
Restituisce |
L'indirizzo IP creato.
|
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES] )
Crea un indirizzo multicast IPv6 dalle sue parti.
Usa MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
per creare un indirizzo IPv6 multicast con flags
per l'ambito di routing scope
e gli ottetti degli identificatori di gruppo groupId
.
Dettagli | |
---|---|
Restituisce |
L'indirizzo IP creato.
|
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, uint32_t aGroupId )
Crea un indirizzo multicast IPv6 dalle sue parti.
Usa MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId)
per creare un indirizzo IPv6 multicast con flags
per l'ambito di routing scope
e l'identificatore di gruppo groupId
.
Dettagli | |
---|---|
Restituisce |
L'indirizzo IP creato.
|
MakeIPv6PrefixMulticast
IPAddress MakeIPv6PrefixMulticast( uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId )
Costruisci un prefisso IPv6 temporaneo dalle sue parti.
Usa MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId)
per creare un indirizzo IPv6 multicast temporaneo con prefisso per l'ambito di routing scope
e ottetti dell'identificatore di gruppo groupId
, qualificati dal prefisso prefix
di lunghezza prefixlen
bit.
Dettagli | |
---|---|
Restituisce |
L'indirizzo IP creato.
|
MakeIPv6TransientMulticast
IPAddress MakeIPv6TransientMulticast( uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES] )
Costruisci un indirizzo IPv6 multicast temporaneo a partire dalle sue parti.
Usa MakeIPv6TransientMulticast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
per creare un indirizzo multicast IPv6 temporaneo con flags
per l'ambito di routing scope
e gli ottetti degli identificatori di gruppo groupId
.
Dettagli | |
---|---|
Restituisce |
L'indirizzo IP creato.
|
MakeIPv6WellKnownMulticast
IPAddress MakeIPv6WellKnownMulticast( uint8_t aScope, uint32_t aGroupId )
Costruisci un indirizzo IPv6 multicast noto dalle sue parti.
Usa MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId)
per creare un indirizzo multicast IPv6 per l'ambito di routing scope
e l'identificatore di gruppo groupId
.
Dettagli | |
---|---|
Restituisce |
L'indirizzo IP creato.
|
MakeLLA
IPAddress MakeLLA( uint64_t interfaceId )
Crea un indirizzo IPv6 locale rispetto al collegamento (LL) dal relativo IID.
Utilizza MakeLLA(uint64_t interfaceId)
per creare un indirizzo IPv6 locale rispetto al collegamento (LL) con l'identificatore dell'interfaccia interfaceId
.
Dettagli | |
---|---|
Restituisce |
L'indirizzo IP creato.
|
MakeULA
IPAddress MakeULA( uint64_t globalId, uint16_t subnet, uint64_t interfaceId )
Costruisci un indirizzo IPv6 Unique-Local (ULA) dalle sue parti.
Usa MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
per creare un indirizzo univoco locale (ULA) con l'identificatore di rete globale globalId
, l'identificatore di subnet subnet
e l'identificatore di interfaccia (IID) interfaceId
.
Dettagli | |
---|---|
Restituisce |
L'indirizzo IP creato.
|
ReadAddress
void ReadAddress( const uint8_t *& p, IPAddress & output )
Emetti l'indirizzo IP nella rappresentazione di rete standard.
Usa ReadAddress(uint8_t *&p, IPAddress &output)
per decodificare l'indirizzo IP su p
verso l'oggetto output
.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|