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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
È 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 |
|
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 |
|
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 |
|
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 |
|
operatore!=
bool operator!=( const IPAddress & other ) const
Confronta questo indirizzo IP con un altro per inequivalenza.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
| ||||
Valori di ritorno |
|
operatore=
IPAddress & operator=( const IPAddress & other )
Operatore di assegnazione convenzionale.
Dettagli | |||
---|---|---|---|
Parametri |
| ||
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 |
| ||||
Valori di ritorno |
|
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 |
|
Dettagli | |||||
---|---|---|---|---|---|
Valori di ritorno |
|
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 |
|
Dettagli | |||||
---|---|---|---|---|---|
Valori di ritorno |
|
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 |
|