nl:: Inetto:: Indirizzo IP

#include <src/inet/IPAddress.h>

Indirizzo del protocollo Internet.

Sommario

Il livello Inet Nest utilizza oggetti di questa classe per rappresentare gli indirizzi del 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 indirizzo IP distinto non specificato.

Funzioni pubbliche

GlobalId (void) const
uint64_t
Estrarre l'identificatore di rete globale a 16 bit di un indirizzo ULA IPv6.
InterfaceId (void) const
uint64_t
Estrarre l'IID di un indirizzo ULA IPv6.
IsIPv4 (void) const
bool
Verifica se l'indirizzo è compatibile con IPv4.
IsIPv4Broadcast (void) const
bool
Verificare se l'indirizzo è broadcast IPv4.
IsIPv4Multicast (void) const
bool
Verificare se l'indirizzo è multicast IPv4.
IsIPv6 (void) const
bool
Verifica se l'indirizzo è compatibile con IPv6.
IsIPv6GlobalUnicast (void) const
bool
Verificare se l'indirizzo è un indirizzo unicast globale IPv6.
IsIPv6LinkLocal (void) const
bool
Verificare se l'indirizzo è un indirizzo locale del collegamento IPv6 (LL).
IsIPv6Multicast (void) const
bool
Verificare se l'indirizzo è multicast IPv6.
IsIPv6ULA (void) const
bool
Verificare se l'indirizzo è un indirizzo locale univoco IPv6 (ULA).
IsMulticast (void) const
bool
Verificare se l'indirizzo è multicast IPv4 o IPv6.
Subnet (void) const
uint16_t
Estrarre l'identificatore di sottorete a 16 bit di un indirizzo ULA IPv6.
ToIPv4 (void) const
Estrarre l'indirizzo IPv4 come struttura dati della piattaforma.
ToIPv4 (void) const
struct in_addr
ToIPv6 (void) const
ip6_addr_t
Estrarre 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
Estrarre 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 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)
Inietta l'indirizzo IPv4 da una struttura dati della piattaforma.
FromIPv6 (const ip6_addr_t & addr)
FromIPv6 (const struct in6_addr & addr)
Inietta l'indirizzo IPv6 da una struttura dati della piattaforma.
FromSockAddr (const struct sockaddr & sockaddr)
Iniettare l'indirizzo IPv6 da un POSIX struct sockaddr&
FromString (const char *str, IPAddress & output)
bool
Scansiona l'indirizzo IP dal suo testo di presentazione convenzionale.
FromString (const char *str, size_t strLen, IPAddress & output)
bool
Scansiona l'indirizzo IP dal suo testo di presentazione convenzionale.
MakeIPv4Broadcast (void)
Costruisci un indirizzo di trasmissione IPv4.
MakeIPv6Multicast (uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
Costruisci un indirizzo multicast IPv6 dalle sue parti.
MakeIPv6Multicast (uint8_t aFlags, uint8_t aScope, uint32_t aGroupId)
Costruisci 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 transitorio con prefisso 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 transitorio dalle sue parti.
MakeIPv6WellKnownMulticast (uint8_t aScope, uint32_t aGroupId)
Costruisci un noto indirizzo multicast IPv6 dalle sue parti.
MakeLLA (uint64_t interfaceId)
Costruisci un indirizzo link-local IPv6 (LL) dal suo IID.
MakeULA (uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
Costruisci un indirizzo locale univoco (ULA) IPv6 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 utilizza tutti i 128 bit suddivisi in quattro byte di rete a 32 bit interi senza segno ordinati. Gli indirizzi IPv4 sono V4COMPAT, ovvero le prime tre parole sono zero e la quarta parola contiene l'indirizzo IPv4 nell'ordine dei byte di rete.

Attributi statici pubblici

Qualunque

IPAddress Any

L'oggetto indirizzo IP distinto non specificato.

Questo oggetto viene utilizzato come costante per i confronti di equivalenza. Non deve essere modificato dagli utenti di Nest Inet Layer.

Funzioni pubbliche

GlobalId

uint64_t GlobalId(
  void
) const 

Estrarre l'identificatore di rete globale a 16 bit di un indirizzo ULA IPv6.

Utilizzare questo metodo con un indirizzo univoco locale (ULA) IPv6 per estrarre l'identificatore di rete globale, ovvero i 40 bit immediatamente successivi al prefisso di rete ULA distinto, ovvero fd00::/8. In altre parole, l'identificatore di rete globale si trova nei cinque byte dal 2° al 6° byte dell'indirizzo.

Dettagli
ritorna
Identificatore di rete globale a 40 bit o zero se l'indirizzo IP non è un indirizzo IPv6 univoco locale.

ID interfaccia

uint64_t InterfaceId(
  void
) const 

Estrarre l'IID di un indirizzo ULA IPv6.

Utilizzare questo metodo con un indirizzo locale univoco (ULA) IPv6 per estrarre l'identificatore dell'identificatore (IID), ovvero i 64 bit meno significativi dell'indirizzo.

Dettagli
ritorna
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.

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

IsIPv4Broadcast

bool IsIPv4Broadcast(
  void
) const 

Verificare se l'indirizzo è broadcast IPv4.

Utilizzare questo metodo per verificare se l'indirizzo è l'indirizzo di trasmissione IPv4 per scopi speciali.

Dettagli
Valori di ritorno
true
L'indirizzo è la trasmissione IPv4
false
Altrimenti

IsIPv4Multicast

bool IsIPv4Multicast(
  void
) const 

Verificare se l'indirizzo è multicast IPv4.

Utilizzare questo metodo per verificare se l'indirizzo è un indirizzo multicast IPv4.

Dettagli
Valori di ritorno
true
L'indirizzo è il multicast IPv4
false
Altrimenti

IsIPv6

bool IsIPv6(
  void
) const 

Verifica se l'indirizzo è compatibile con IPv6.

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

IsIPv6GlobalUnicast

bool IsIPv6GlobalUnicast(
  void
) const 

Verificare se l'indirizzo è un indirizzo unicast globale IPv6.

Utilizzare questo metodo per verificare se l'indirizzo appartiene alla famiglia di indirizzi IPv6 e ha il prefisso dell'indirizzo unicast globale.

Dettagli
Valori di ritorno
true
L'indirizzo è unicast globale IPv6
false
Altrimenti

IsIPv6LinkLocal

bool IsIPv6LinkLocal(
  void
) const 

Verificare se l'indirizzo è un indirizzo locale del collegamento IPv6 (LL).

Utilizzare questo metodo per verificare se l'indirizzo appartiene alla famiglia di indirizzi IPv6 e ha il prefisso dell'indirizzo locale del collegamento IPv6 riservato.

Dettagli
Valori di ritorno
true
L'indirizzo è IPv6 link-local
false
Altrimenti

IsIPv6Multicast

bool IsIPv6Multicast(
  void
) const 

Verificare se l'indirizzo è multicast IPv6.

Utilizzare questo metodo per verificare se l'indirizzo appartiene alla famiglia di indirizzi IPv6 e ha il prefisso dell'indirizzo multicast IPv6 riservato.

Dettagli
Valori di ritorno
true
L'indirizzo è multicast IPv6
false
Altrimenti

IsIPv6ULA

bool IsIPv6ULA(
  void
) const 

Verificare se l'indirizzo è un indirizzo locale univoco IPv6 (ULA).

Utilizzare questo metodo per verificare se l'indirizzo appartiene alla famiglia di indirizzi IPv6 e ha il prefisso dell'indirizzo IPv6 univoco locale riservato.

Dettagli
Valori di ritorno
true
L'indirizzo è IPv6 univoco locale
false
Altrimenti

È multicast

bool IsMulticast(
  void
) const 

Verificare se l'indirizzo è multicast IPv4 o IPv6.

Utilizzare questo metodo per verificare se l'indirizzo appartiene alla famiglia di indirizzi IPv4 o IPv6 e ha il prefisso di indirizzo multicast IPv4 o IPv6 riservato.

Dettagli
Valori di ritorno
true
L'indirizzo è IPv4 o IPv6 multicast
false
Altrimenti

sottorete

uint16_t Subnet(
  void
) const 

Estrarre l'identificatore di sottorete a 16 bit di un indirizzo ULA IPv6.

Utilizzare questo metodo con un indirizzo locale univoco (ULA) IPv6 per estrarre l'identificatore di sottorete, ovvero i 16 bit meno significativi del prefisso di rete. Il prefisso di rete è il 64 bit più significativo dell'indirizzo. In altre parole, l'identificatore di sottorete si trova nel settimo e nell'ottavo byte di un indirizzo a 16 byte.

Dettagli
ritorna
Identificatore di sottorete a 16 bit o zero se l'indirizzo IP non è un indirizzo IPv6 univoco locale.

AIPv4

ip4_addr_t ToIPv4(
  void
) const 

Estrarre l'indirizzo IPv4 come struttura dati della piattaforma.

Usa ToIPv4() const per estrarre il contenuto come un indirizzo IPv4, se possibile. Indirizzi IPv6 e l'indirizzo specificato vengono estratti come 0.0.0.0 .

Il risultato è di tipo struct in_addr (su POSIX) o ip4_addr_t (su LwIP).

Dettagli
ritorna
L'indirizzo IPv4 incapsulati, o 0.0.0.0 se l'indirizzo è o non specificato o meno un indirizzo IPv4.

AIPv4

struct in_addr ToIPv4(
  void
) const 

AIPv6

ip6_addr_t ToIPv6(
  void
) const 

Estrarre l'indirizzo IPv6 come struttura dati della piattaforma.

Usa ToIPv6() const per estrarre il contenuto come un indirizzo IPv6, se possibile. 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
ritorna
L'indirizzo IPv4 incapsulati, o [::] if the address is either unspecified or not an IPv4 address.

AIPv6

struct in6_addr ToIPv6(
  void
) const 

Accordare

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 tradizionale modulo di presentazione del testo dell'indirizzo IP alla memoria situato a buf e che si estende fino a bufSize byte, compreso il suo 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. In particolare, la compressione zero potrebbe non essere applicata secondo la sezione 4.2.

Dettagli
ritorna
L'argomento buf se nessun errore formattazione o zero altrimenti.

genere

IPAddressType Type(
  void
) const 

Estrarre il tipo di indirizzo IP.

Utilizzare questo metodo per restituire un valore del tipo enumerato IPAddressType per indicare il tipo di indirizzo IP.

Dettagli
Valori di ritorno
kIPAddressType_IPv4
L'indirizzo è IPv4.
kIPAddressType_IPv6
L'indirizzo è IPv6.
kIPAddressType_Any
L'indirizzo è l'indirizzo non specificato.

ScriviIndirizzo

void WriteAddress(
  uint8_t *& p
) const 

Emetti l'indirizzo IP nella rappresentazione di rete standard.

Usa WriteAddress(uint8_t *&p) per codificare l'indirizzo IP nel formato binario definito da RFC 4291 per gli indirizzi IPv6. Gli indirizzi IPv4 sono codificati secondo la 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 inequivalenza.

Dettagli
Parametri
[in] other
L'indirizzo da confrontare.
Valori di ritorno
true
Se equivalente ad other
false
Altrimenti

operatore=

IPAddress & operator=(
  const IPAddress & other
)

Operatore di assegnazione convenzionale.

Dettagli
Parametri
[in] other
L'indirizzo da copiare.
ritorna
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 di ritorno
true
Se equivalente ad other
false
Altrimenti

Funzioni statiche pubbliche

Da IPv4

IPAddress FromIPv4(
  const ip4_addr_t & addr
)

Questa è una funzione membro sovraccaricata, fornita per comodità. Differisce dalla funzione sopra solo in quali argomenti accetta.

Da IPv4

IPAddress FromIPv4(
  const struct in_addr & addr
)

Inietta l'indirizzo IPv4 da una struttura dati della piattaforma.

Usa FromIPv4(const ip4_addr_t &addr) per iniettare addr come un indirizzo IPv4.

L'argomento addr è sia di tipo const struct in_addr& (su POSIX) o const ip4_addr_t& (su LwIP).

Dettagli
ritorna
L'indirizzo IP costruito.

Da IPv6

IPAddress FromIPv6(
  const ip6_addr_t & addr
)

Questa è una funzione membro sovraccaricata, fornita per comodità. Differisce dalla funzione sopra solo in quali argomenti accetta.

Da IPv6

IPAddress FromIPv6(
  const struct in6_addr & addr
)

Inietta l'indirizzo IPv6 da una struttura dati della piattaforma.

Usa FromIPv6(const ip6_addr_t &addr) per iniettare addr come un indirizzo IPv6.

L'argomento addr è sia di tipo const struct in6_addr& (su POSIX) o const ip6_addr_t& (su LwIP).

Dettagli
ritorna
L'indirizzo IP costruito.

DaSockAddr

IPAddress FromSockAddr(
  const struct sockaddr & sockaddr
)

Iniettare l'indirizzo IPv6 da un POSIX struct sockaddr&

Uso FromSockAddr(const struct sockaddr& sockaddr) per iniettare sockaddr.sa_addr come indirizzo IPv6.

Dettagli
ritorna
L'indirizzo IP costruito.

DaString

bool FromString(
  const char *str,
  IPAddress & output
)

Scansiona l'indirizzo IP dal suo testo di presentazione convenzionale.

Usa FromString(const char *str, IPAddress& output) per sovrascrivere un indirizzo IP attraverso la scansione la presentazione del testo convenzionale situato in str .

Dettagli
Parametri
[in] str
L'indirizzo del testo emesso.
[out] output
L'oggetto da impostare sull'indirizzo scansionato.

Dettagli
Valori di ritorno
true
Il formato di presentazione è valido
false
Altrimenti

DaString

bool FromString(
  const char *str,
  size_t strLen,
  IPAddress & output
)

Scansiona l'indirizzo IP dal suo testo di presentazione convenzionale.

Usa FromString(const char *str, size_t strLen, IPAddress& output) per sovrascrivere un indirizzo IP attraverso la scansione la presentazione del testo convenzionale situato 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 di ritorno
true
Il formato di presentazione è valido
false
Altrimenti

MakeIPv4Broadcast

IPAddress MakeIPv4Broadcast(
  void
)

Costruisci un indirizzo di trasmissione IPv4.

Dettagli
ritorna
L'indirizzo IP costruito.

MakeIPv6Multicast

IPAddress MakeIPv6Multicast(
  uint8_t aFlags,
  uint8_t aScope,
  const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES]
)

Costruisci un indirizzo multicast IPv6 dalle sue parti.

Usa MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint8_t groupId[14]) per la costruzione di un indirizzo IPv6 multicast con flags per il routing portata scope e ottetti identificatore di gruppo groupId .

Dettagli
ritorna
L'indirizzo IP costruito.

MakeIPv6Multicast

IPAddress MakeIPv6Multicast(
  uint8_t aFlags,
  uint8_t aScope,
  uint32_t aGroupId
)

Costruisci un indirizzo multicast IPv6 dalle sue parti.

Usa MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId) per costruire un indirizzo IPv6 multicast con flags per il routing ambito scope e di gruppo identificatore groupId .

Dettagli
ritorna
L'indirizzo IP costruito.

MakeIPv6PrefixMulticast

IPAddress MakeIPv6PrefixMulticast(
  uint8_t aScope,
  uint8_t aPrefixLength,
  const uint64_t & aPrefix,
  uint32_t aGroupId
)

Costruire un indirizzo multicast IPv6 transitorio con prefisso dalle sue parti.

Uso MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId) per costruire un transitorio, prefisso IPv6 indirizzo multicast per il routing con portata scope e ottetti identificatore gruppo groupId , qualificata dal prefisso prefix di lunghezza prefixlen bit.

Dettagli
ritorna
L'indirizzo IP costruito.

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 transitorio dalle sue parti.

Usa MakeIPv6TransientMulticast(uint8_t flags, uint8_t scope, uint8_t groupId[14]) per la costruzione di un transitorio di IPv6 multicast indirizzo con flags per il routing portata scope e ottetti identificatore di gruppo groupId .

Dettagli
ritorna
L'indirizzo IP costruito.

MakeIPv6WellKnownMulticast

IPAddress MakeIPv6WellKnownMulticast(
  uint8_t aScope,
  uint32_t aGroupId
)

Costruisci un noto indirizzo multicast IPv6 dalle sue parti.

Usa MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId) per costruire un indirizzo IPv6 multicast per il routing ambito scope e di gruppo identificatore groupId .

Dettagli
ritorna
L'indirizzo IP costruito.

MakeLLA

IPAddress MakeLLA(
  uint64_t interfaceId
)

Costruisci un indirizzo link-local IPv6 (LL) dal suo IID.

Usa MakeLLA(uint64_t interfaceId) per costruire un indirizzo di collegamento locale IPv6 (LL) con interfaccia identificatore interfaceId .

Dettagli
ritorna
L'indirizzo IP costruito.

MakeULA

IPAddress MakeULA(
  uint64_t globalId,
  uint16_t subnet,
  uint64_t interfaceId
)

Costruisci un indirizzo locale univoco (ULA) IPv6 dalle sue parti.

Usa MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId) per costruire un indirizzo univoco-locale (ULA) con la rete globale identificatore globalId , sottorete identificatore di subnet e l'interfaccia identificatore (IID) interfaceId .

Dettagli
ritorna
L'indirizzo IP costruito.

LeggiIndirizzo

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 p all'oggetto output .

Dettagli
Parametri
[in,out] p
Riferimento al cursore da utilizzare per la lettura.
[out] output
Oggetto per ricevere l'indirizzo IP decodificato.