nl:: Inet:: IPAddress
#include <src/inet/IPAddress.h>
Indirizzo del protocollo Internet.
Riepilogo
Nest Inet Layer utilizza gli oggetti di questa classe per rappresentare gli indirizzi del protocollo Internet (indipendentemente dalla versione del protocollo).
Attributi pubblici |
|
---|---|
Addr[4]
|
uint32_t
Matrice di parole opaca per contenere indirizzi IP (indipendentemente dalla versione del protocollo)
|
Attributi statici pubblici |
|
---|---|
Any
|
L'oggetto dell'indirizzo IP distinto non specificato.
|
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 ULA IPv6.
|
IsIPv4(void) const
|
bool
Verifica se l'indirizzo è compatibile con IPv4.
|
IsIPv4Broadcast(void) const
|
bool
Verifica se l'indirizzo è un broadcast 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 locale rispetto al collegamento IPv6 (LL).
|
IsIPv6Multicast(void) const
|
bool
Verifica se l'indirizzo è multicast IPv6.
|
IsIPv6ULA(void) const
|
bool
Verifica se l'indirizzo è un indirizzo ULA (unique-local address) IPv6.
|
IsMulticast(void) const
|
bool
Verifica se l'indirizzo è IPv4 o multicast IPv6.
|
Subnet(void) const
|
uint16_t
Estrai l'identificatore della subnet a 16 bit di un indirizzo ULA IPv6.
|
ToIPv4(void) const
|
Estrai l'indirizzo IPv4 come struttura dati della piattaforma.
|
ToIPv4(void) const
|
struct in_addr
|
ToIPv6(void) const
|
ip6_addr_t
Estrai l'indirizzo IPv6 come struttura 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 di testo convenzionale.
|
Type(void) const
|
IPAddressType
Estrai il tipo di indirizzo IP.
|
WriteAddress(uint8_t *& p) const
|
void
Emetti l'indirizzo IP in una rappresentazione di rete standard.
|
operator!=(const IPAddress & other) const
|
bool
Confronta questo indirizzo IP con un altro per ottenere l'inequivalenza.
|
operator=(const IPAddress & other)
|
Operatore di assegnazione convenzionale.
|
operator==(const IPAddress & other) const
|
bool
Confronta questo indirizzo IP con un altro per ottenere l'equivalenza.
|
Funzioni statiche pubbliche |
|
---|---|
FromIPv4(const ip4_addr_t & addr)
|
|
FromIPv4(const struct in_addr & addr)
|
Inserisci l'indirizzo IPv4 da una struttura dati della piattaforma.
|
FromIPv6(const ip6_addr_t & addr)
|
|
FromIPv6(const struct in6_addr & addr)
|
Inserisci l'indirizzo IPv6 da una struttura dati della piattaforma.
|
FromSockAddr(const struct sockaddr & sockaddr)
|
Inserisci l'indirizzo IPv6 da un POSIX
struct sockaddr& |
FromString(const char *str, IPAddress & output)
|
bool
Analizza l'indirizzo IP dal testo di presentazione convenzionale.
|
FromString(const char *str, size_t strLen, IPAddress & output)
|
bool
Analizza l'indirizzo IP dal testo di presentazione convenzionale.
|
MakeIPv4Broadcast(void)
|
Crea un indirizzo di trasmissione IPv4.
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
|
Costruire un indirizzo multicast IPv6 dalle sue parti.
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, uint32_t aGroupId)
|
Costruire un indirizzo multicast IPv6 dalle sue parti.
|
MakeIPv6PrefixMulticast(uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId)
|
Costruire un indirizzo multicast IPv6 temporaneo a partire dalle sue parti.
|
MakeIPv6TransientMulticast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
|
Costruire un indirizzo multicast IPv6 temporaneo dalle sue parti.
|
MakeIPv6WellKnownMulticast(uint8_t aScope, uint32_t aGroupId)
|
Costruire un noto indirizzo multicast IPv6 dalle sue parti.
|
MakeLLA(uint64_t interfaceId)
|
Crea un indirizzo locale rispetto al collegamento IPv6 (LL) a partire dal relativo IID.
|
MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
|
Costruire un indirizzo ULA (unique-local address) IPv6 dalle sue parti.
|
ReadAddress(const uint8_t *& p, IPAddress & output)
|
void
Emetti l'indirizzo IP in una rappresentazione di rete standard.
|
Attributi pubblici
Addr
uint32_t Addr[4]
Matrice di parole opaca per contenere indirizzi IP (indipendentemente dalla versione del protocollo)
Gli indirizzi IPv6 utilizzano tutti i 128 bit suddivisi in quattro numeri interi senza segno, ordinati in byte di rete a 32 bit. Gli indirizzi IPv4 sono V4COMPAT, ovvero 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 distinto non specificato.
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 ULA (unique-local address) IPv6 per estrarre l'identificatore della rete globale, ovvero i 40 bit subito dopo il prefisso di rete ULA distinto, ovvero fd00::/8. In altre parole, l'identificatore di rete globale si trova nei cinque byte dal secondo al sesto byte dell'indirizzo.
Dettagli | |
---|---|
Restituisce |
Identificatore di rete globale a 40 bit o zero se l'indirizzo IP non è un indirizzo IPv6 locale univoco.
|
InterfaceId
uint64_t InterfaceId( void ) const
Estrai l'IID di un indirizzo ULA IPv6.
Utilizza questo metodo con un indirizzo ULA (unique-local address) IPv6 per estrarre l'identificatore identificatore (IID), ossia i 64 bit meno significativi dell'indirizzo.
Dettagli | |
---|---|
Restituisce |
Identificatore di interfaccia a 64 bit o zero se l'indirizzo IP non è un indirizzo IPv6 locale univoco.
|
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 bene: l'indirizzo non specificato non è un indirizzo IPv4.
Dettagli | |||||
---|---|---|---|---|---|
Valori restituiti |
|
IsIPv4Broadcast
bool IsIPv4Broadcast( void ) const
Verifica se l'indirizzo è un broadcast IPv4.
Utilizza questo metodo per verificare se l'indirizzo è l'indirizzo di trasmissione IPv4 per uso speciale.
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 bene: 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 locale rispetto al collegamento IPv6 (LL).
Utilizza questo metodo per verificare se l'indirizzo appartiene alla famiglia di indirizzi IPv6 e ha il prefisso dell'indirizzo locale rispetto al collegamento IPv6 riservato.
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 ULA (unique-local address) IPv6.
Utilizza questo metodo per verificare se l'indirizzo appartiene alla famiglia di indirizzi IPv6 e ha il prefisso dell'indirizzo univoco IPv6 riservato.
Dettagli | |||||
---|---|---|---|---|---|
Valori restituiti |
|
IsMulticast
bool IsMulticast( void ) const
Verifica se l'indirizzo è IPv4 o multicast 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 della subnet a 16 bit di un indirizzo ULA IPv6.
Utilizza questo metodo con un indirizzo ULA (unique-local address) IPv6 per estrarre l'identificatore della 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 settimo e nell'8° byte di un indirizzo a 16 byte.
Dettagli | |
---|---|
Restituisce |
Identificatore di subnet a 16 bit o zero se l'indirizzo IP non è un indirizzo IPv6 locale univoco.
|
ToIPv4
ip4_addr_t ToIPv4( void ) const
Estrai l'indirizzo IPv4 come struttura dati della piattaforma.
Utilizza 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
Estrai l'indirizzo IPv6 come struttura dati della piattaforma.
Utilizza 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 di testo convenzionale.
Usa ToString(char *buf, uint32_t bufSize) const
per scrivere il formato di presentazione del testo convenzionale dell'indirizzo IP nella memoria all'indirizzo buf
e con una estensione fino a bufSize
byte, incluso il carattere di terminazione NUL.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
Nota bene: non è conforme a RFC 5952 su alcune piattaforme. In particolare, la compressione zero non può essere applicata secondo la sezione 4.2.
Dettagli | |
---|---|
Restituisce |
L'argomento
buf se nessun errore di formattazione oppure zero in caso contrario. |
Tipo
IPAddressType Type( void ) const
Estrai il tipo di indirizzo IP.
Utilizza questo metodo per restituire un valore di tipo enumerato IPAddressType
per indicare il tipo di indirizzo IP.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Valori restituiti |
|
WriteAddress
void WriteAddress( uint8_t *& p ) const
Emetti l'indirizzo IP in una rappresentazione di rete standard.
Utilizza WriteAddress(uint8_t *&p)
per codificare l'indirizzo IP nel formato binario definito dalla specifica RFC 4291 per gli indirizzi IPv6. Gli indirizzi IPv4 sono codificati secondo la sezione 2.5.5.1 "Compatibile con IPv4
Indirizzo IPv6" (V4COMPAT).
Dettagli | |||
---|---|---|---|
Parametri |
|
operator!=
bool operator!=( const IPAddress & other ) const
Confronta questo indirizzo IP con un altro per ottenere l'inequivalenza.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
operator=
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 ottenere l'equivalenza.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
Funzioni statiche pubbliche
FromIPv4
IPAddress FromIPv4( const ip4_addr_t & addr )
Si tratta di una funzione membro con sovraccarico, fornita per praticità. Differisce dalla funzione precedente solo per quali argomenti accetta.
FromIPv4
IPAddress FromIPv4( const struct in_addr & addr )
Inserisci l'indirizzo IPv4 da una struttura 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 )
Si tratta di una funzione membro con sovraccarico, fornita per praticità. Differisce dalla funzione precedente solo per quali argomenti accetta.
FromIPv6
IPAddress FromIPv6( const struct in6_addr & addr )
Inserisci l'indirizzo IPv6 da una struttura 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 POSIX struct sockaddr&
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 )
Analizza l'indirizzo IP dal testo di presentazione convenzionale.
Utilizza FromString(const char *str, IPAddress& output)
per sovrascrivere un indirizzo IP analizzando la presentazione di testo convenzionale all'indirizzo str
.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
Dettagli | |||||
---|---|---|---|---|---|
Valori restituiti |
|
FromString
bool FromString( const char *str, size_t strLen, IPAddress & output )
Analizza l'indirizzo IP dal testo di presentazione convenzionale.
Utilizza FromString(const char *str, size_t strLen, IPAddress& output)
per sovrascrivere un indirizzo IP analizzando la presentazione di testo convenzionale all'indirizzo str
.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
Dettagli | |||||
---|---|---|---|---|---|
Valori restituiti |
|
MakeIPv4Broadcast
IPAddress MakeIPv4Broadcast( void )
Crea 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] )
Costruire un indirizzo multicast IPv6 dalle sue parti.
Usa MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
per creare un indirizzo multicast IPv6 con flags
per l'ambito di routing scope
e gli ottetti dell'identificatore di gruppo groupId
.
Dettagli | |
---|---|
Restituisce |
L'indirizzo IP creato.
|
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, uint32_t aGroupId )
Costruire un indirizzo multicast IPv6 dalle sue parti.
Usa MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId)
per creare un indirizzo multicast IPv6 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 )
Costruire un indirizzo multicast IPv6 temporaneo a partire dalle sue parti.
Utilizza MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId)
per creare un indirizzo multicast IPv6 temporaneo con per l'ambito di routing scope
e ottetti dell'identificatore di gruppo groupId
, qualificati dal prefisso prefix
di 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] )
Costruire un indirizzo multicast IPv6 temporaneo 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 dell'identificatore di gruppo groupId
.
Dettagli | |
---|---|
Restituisce |
L'indirizzo IP creato.
|
MakeIPv6WellKnownMulticast
IPAddress MakeIPv6WellKnownMulticast( uint8_t aScope, uint32_t aGroupId )
Costruire un noto indirizzo multicast IPv6 dalle sue parti.
Utilizza 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 locale rispetto al collegamento IPv6 (LL) a partire dal relativo IID.
Utilizza MakeLLA(uint64_t interfaceId)
per creare un indirizzo IPv6 locale rispetto al collegamento (LL) con identificatore di interfaccia interfaceId
.
Dettagli | |
---|---|
Restituisce |
L'indirizzo IP creato.
|
MakeULA
IPAddress MakeULA( uint64_t globalId, uint16_t subnet, uint64_t interfaceId )
Costruire un indirizzo ULA (unique-local address) IPv6 dalle sue parti.
Utilizza MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
per creare un indirizzo locale univoco (ULA) con l'identificatore di rete globale globalId
, l'identificatore della 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 in una rappresentazione di rete standard.
Utilizza ReadAddress(uint8_t *&p, IPAddress &output)
per decodificare l'indirizzo IP in p
nell'oggetto output
.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|