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
true
L'indirizzo è IPv4 e non l'indirizzo non specificato.
false
L'indirizzo è IPv6 o l'indirizzo non specificato.

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
true
L'indirizzo è la trasmissione IPv4
false
In caso contrario

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
true
L'indirizzo è il multicast IPv4
false
In caso contrario

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
true
L'indirizzo è IPv6 e non l'indirizzo non specificato.
false
L'indirizzo è IPv4 o l'indirizzo non specificato.

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
true
L'indirizzo è un unicast globale IPv6
false
In caso contrario

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
true
L'indirizzo è locale rispetto al collegamento IPv6
false
In caso contrario

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
true
L'indirizzo è multicast IPv6
false
In caso contrario

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
true
L'indirizzo è univoco-locale IPv6
false
In caso contrario

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
true
L'indirizzo è IPv4 o multicast IPv6
false
In caso contrario

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
[out] buf
L'indirizzo del testo emesso.
[in] bufSize
La dimensione del buffer per il testo emesso.

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
kIPAddressType_IPv4
L'indirizzo è IPv4.
kIPAddressType_IPv6
L'indirizzo è IPv6.
kIPAddressType_Any
L'indirizzo è l'indirizzo non specificato.

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
[in,out] p
Riferimento al cursore da utilizzare per la scrittura.

operator!=

bool operator!=(
  const IPAddress & other
) const 

Confronta questo indirizzo IP con un altro per ottenere l'inequivalenza.

Dettagli
Parametri
[in] other
L'indirizzo da confrontare.
Valori restituiti
true
Se equivalente a other
false
In caso contrario

operator=

IPAddress & operator=(
  const IPAddress & other
)

Operatore di assegnazione convenzionale.

Dettagli
Parametri
[in] other
L'indirizzo da copiare.
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
[in] other
L'indirizzo da confrontare.
Valori restituiti
true
Se equivalente a other
false
In caso contrario

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
[in] str
L'indirizzo del testo emesso.
[out] output
L'oggetto da impostare sull'indirizzo scansionato.

Dettagli
Valori restituiti
true
Il formato della presentazione è valido
false
In caso contrario

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
[in] str
Un puntatore al testo da scansionare.
[in] strLen
La lunghezza del testo da scansionare.
[out] output
L'oggetto da impostare sull'indirizzo scansionato.

Dettagli
Valori restituiti
true
Il formato della presentazione è valido
false
In caso contrario

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
[in,out] p
Riferimento al cursore da utilizzare per la lettura.
[out] output
Oggetto per ricevere l'indirizzo IP decodificato.