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

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
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: l'indirizzo non specificato non è un indirizzo IPv6.

Dettagli
Valori restituiti
true
L'indirizzo è IPv6 e non quello 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 è IPv6 globale unicast
false
In caso contrario

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

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

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

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

operatore!=

bool operator!=(
  const IPAddress & other
) const 

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

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

operatore=

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 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
)

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

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

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
[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 sia valido
false
In caso contrario

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