nl:: Inet:: IPAddress
#include <src/inet/IPAddress.h>
l'adresse IP de l'utilisateur.
Résumé
La couche Nest Inet utilise des objets de cette classe pour représenter des adresses de protocole Internet (indépendamment de la version du protocole).
Attributs publics |
|
---|---|
Addr[4]
|
uint32_t
Tableau de mots opaque destiné à contenir des adresses IP (indépendamment de la version du protocole)
|
Attributs statiques publics |
|
---|---|
Any
|
Objet d'adresse IP distinctif non spécifié.
|
Fonctions publiques |
|
---|---|
GlobalId(void) const
|
uint64_t
Extrayez l'identifiant réseau global 16 bits d'une adresse ULA IPv6.
|
InterfaceId(void) const
|
uint64_t
Extrayez l'IID d'une adresse ULA IPv6.
|
IsIPv4(void) const
|
bool
Vérifiez si l'adresse est compatible avec le protocole IPv4.
|
IsIPv4Broadcast(void) const
|
bool
Vérifiez si l'adresse est de diffusion IPv4.
|
IsIPv4Multicast(void) const
|
bool
Vérifiez si l'adresse est bien multicast IPv4.
|
IsIPv6(void) const
|
bool
Vérifiez si l'adresse est compatible avec le protocole IPv6.
|
IsIPv6GlobalUnicast(void) const
|
bool
Vérifiez si l'adresse est une adresse de monodiffusion IPv6 globale.
|
IsIPv6LinkLocal(void) const
|
bool
Vérifiez si l'adresse est une adresse de liaison locale (LL) IPv6.
|
IsIPv6Multicast(void) const
|
bool
Vérifiez si l'adresse est bien multicast IPv6.
|
IsIPv6ULA(void) const
|
bool
Vérifiez si l'adresse correspond à une adresse ULA (unique-local address) IPv6.
|
IsMulticast(void) const
|
bool
Vérifiez si l'adresse est IPv4 ou IPv6.
|
Subnet(void) const
|
uint16_t
Extrayez l'identifiant de sous-réseau 16 bits d'une adresse ULA IPv6.
|
ToIPv4(void) const
|
Extrayez l'adresse IPv4 en tant que structure de données de la plate-forme.
|
ToIPv4(void) const
|
struct in_addr
|
ToIPv6(void) const
|
ip6_addr_t
Extrayez l'adresse IPv6 en tant que structure de données de la plate-forme.
|
ToIPv6(void) const
|
struct in6_addr
|
ToString(char *buf, uint32_t bufSize) const
|
char *
Émettre l'adresse IP dans un format de présentation de texte conventionnel
|
Type(void) const
|
IPAddressType
Extrayez le type d'adresse IP.
|
WriteAddress(uint8_t *& p) const
|
void
Émet l'adresse IP dans la représentation réseau standard.
|
operator!=(const IPAddress & other) const
|
bool
Comparez cette adresse IP à une autre pour déterminer l'équivalence.
|
operator=(const IPAddress & other)
|
Opérateur d'affectation classique.
|
operator==(const IPAddress & other) const
|
bool
Comparez cette adresse IP à une autre pour déterminer l'équivalence.
|
Fonctions statiques publiques |
|
---|---|
FromIPv4(const ip4_addr_t & addr)
|
|
FromIPv4(const struct in_addr & addr)
|
Injectez l'adresse IPv4 à partir d'une structure de données de plate-forme.
|
FromIPv6(const ip6_addr_t & addr)
|
|
FromIPv6(const struct in6_addr & addr)
|
Injectez l'adresse IPv6 à partir d'une structure de données de plate-forme.
|
FromSockAddr(const struct sockaddr & sockaddr)
|
Injecter l'adresse IPv6 à partir d'un
struct sockaddr& POSIX |
FromString(const char *str, IPAddress & output)
|
bool
Scannez l'adresse IP à partir du texte de présentation conventionnel.
|
FromString(const char *str, size_t strLen, IPAddress & output)
|
bool
Scannez l'adresse IP à partir du texte de présentation conventionnel.
|
MakeIPv4Broadcast(void)
|
Créez une adresse de diffusion IPv4.
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
|
Construit une adresse de multidiffusion IPv6 à partir de ses différentes parties.
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, uint32_t aGroupId)
|
Construit une adresse de multidiffusion IPv6 à partir de ses différentes parties.
|
MakeIPv6PrefixMulticast(uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId)
|
Créez une adresse de multidiffusion IPv6 temporaire avec un préfixe à partir des éléments de cette adresse.
|
MakeIPv6TransientMulticast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
|
Construit une adresse de multidiffusion IPv6 temporaire à partir des éléments de cette adresse.
|
MakeIPv6WellKnownMulticast(uint8_t aScope, uint32_t aGroupId)
|
Construit une adresse de multidiffusion IPv6 bien connue à partir de ses différentes parties.
|
MakeLLA(uint64_t interfaceId)
|
Construit une adresse de liaison locale (LL) IPv6 à partir de son IID.
|
MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
|
Construit une adresse locale unique (ULA) IPv6 à partir de ses différentes parties.
|
ReadAddress(const uint8_t *& p, IPAddress & output)
|
void
Émet l'adresse IP dans la représentation réseau standard.
|
Attributs publics
Addr
uint32_t Addr[4]
Tableau de mots opaque destiné à contenir des adresses IP (indépendamment de la version du protocole)
L'adresse IPv6 utilise l'ensemble des 128 bits divisés en quatre entiers non signés ordonnés sur les octets de réseau de 32 bits. Les adresses IPv4 sont V4COMPAT, c'est-à-dire que les trois premiers mots sont zéro et que le quatrième mot contient l'adresse IPv4 dans l'ordre des octets sur le réseau.
Attributs statiques publics
Tous
IPAddress Any
Objet d'adresse IP distinctif non spécifié.
Cet objet est utilisé comme constante pour les comparaisons d'équivalences. Elle ne doit pas être modifiée par les utilisateurs de la couche Nest Inet.
Fonctions publiques
GlobalId
uint64_t GlobalId( void ) const
Extrayez l'identifiant réseau global 16 bits d'une adresse ULA IPv6.
Utilisez cette méthode avec une adresse ULA (adresse unique locale) IPv6 pour extraire l'identifiant de réseau global, qui correspond aux 40 bits qui suivent immédiatement le préfixe réseau ULA distinctif, par exemple fd00::/8. En d'autres termes, l'identifiant de réseau global se trouve dans les cinq octets compris entre le 2e et le 6e octets de l'adresse.
Détails | |
---|---|
Renvoie |
Identifiant réseau global de 40 bits, ou zéro si l'adresse IP n'est pas une adresse IPv6 locale unique.
|
InterfaceId
uint64_t InterfaceId( void ) const
Extrayez l'IID d'une adresse ULA IPv6.
Utilisez cette méthode avec une adresse ULA (adresse unique locale) IPv6 pour extraire l'identifiant (IID), qui correspond aux 64 bits les moins significatifs de l'adresse.
Détails | |
---|---|
Renvoie |
Identifiant d'interface 64 bits, ou zéro si l'adresse IP n'est pas une adresse IPv6 locale unique.
|
IsIPv4
bool IsIPv4( void ) const
Vérifiez si l'adresse est compatible avec le protocole IPv4.
Cette méthode vous permet de vérifier si l'adresse appartient à la famille d'adresses IPv4. Notez bien que l'adresse non spécifiée n'est pas une adresse IPv4.
Détails | |||||
---|---|---|---|---|---|
Valeurs de retour |
|
IsIPv4Broadcast
bool IsIPv4Broadcast( void ) const
Vérifiez si l'adresse est de diffusion IPv4.
Utilisez cette méthode pour vérifier s'il s'agit de l'adresse de diffusion IPv4 à usage spécifique.
Détails | |||||
---|---|---|---|---|---|
Valeurs de retour |
|
IsIPv4Multicast
bool IsIPv4Multicast( void ) const
Vérifiez si l'adresse est bien multicast IPv4.
Cette méthode vous permet de vérifier si l'adresse est une adresse de multidiffusion IPv4.
Détails | |||||
---|---|---|---|---|---|
Valeurs de retour |
|
IsIPv6
bool IsIPv6( void ) const
Vérifiez si l'adresse est compatible avec le protocole IPv6.
Cette méthode vous permet de vérifier si l'adresse appartient à la famille d'adresses IPv6. Notez bien que l'adresse non spécifiée n'est pas une adresse IPv6.
Détails | |||||
---|---|---|---|---|---|
Valeurs de retour |
|
IsIPv6GlobalUnicast
bool IsIPv6GlobalUnicast( void ) const
Vérifiez si l'adresse est une adresse de monodiffusion IPv6 globale.
Utilisez cette méthode pour vérifier si l'adresse appartient à la famille d'adresses IPv6 et qu'elle comporte le préfixe d'adresse unicast global.
Détails | |||||
---|---|---|---|---|---|
Valeurs de retour |
|
IsIPv6LinkLocal
bool IsIPv6LinkLocal( void ) const
Vérifiez si l'adresse est une adresse de liaison locale (LL) IPv6.
Cette méthode vous permet de vérifier si l'adresse appartient à la famille d'adresses IPv6 et qu'elle comporte le préfixe d'adresse de liaison locale IPv6 réservé.
Détails | |||||
---|---|---|---|---|---|
Valeurs de retour |
|
IsIPv6Multicast
bool IsIPv6Multicast( void ) const
Vérifiez si l'adresse est bien multicast IPv6.
Cette méthode vous permet de vérifier si l'adresse appartient à la famille d'adresses IPv6 et qu'elle comporte le préfixe d'adresse de multidiffusion IPv6 réservé.
Détails | |||||
---|---|---|---|---|---|
Valeurs de retour |
|
IsIPv6ULA
bool IsIPv6ULA( void ) const
Vérifiez si l'adresse correspond à une adresse ULA (unique-local address) IPv6.
Cette méthode vous permet de vérifier si l'adresse appartient à la famille d'adresses IPv6 et qu'elle comporte le préfixe d'adresse IPv6 unique et locale réservée.
Détails | |||||
---|---|---|---|---|---|
Valeurs de retour |
|
IsMulticast
bool IsMulticast( void ) const
Vérifiez si l'adresse est IPv4 ou IPv6.
Cette méthode vous permet de vérifier si l'adresse appartient à la famille d'adresses IPv4 ou IPv6 et si elle comporte le préfixe d'adresse de multidiffusion IPv4 ou IPv6 réservé.
Détails | |||||
---|---|---|---|---|---|
Valeurs de retour |
|
Sous-réseau
uint16_t Subnet( void ) const
Extrayez l'identifiant de sous-réseau 16 bits d'une adresse ULA IPv6.
Utilisez cette méthode avec une adresse ULA (adresse unique locale) IPv6 pour extraire l'identifiant de sous-réseau, qui correspond aux 16 bits les moins significatifs du préfixe réseau. Le préfixe réseau correspond aux 64 bits les plus significatifs de l'adresse. En d'autres termes, l'identifiant de sous-réseau se trouve dans les 7e et 8e octets d'une adresse de 16 octets.
Détails | |
---|---|
Renvoie |
Identifiant de sous-réseau 16 bits, ou zéro si l'adresse IP n'est pas une adresse IPv6 locale unique.
|
ToIPv4
ip4_addr_t ToIPv4( void ) const
Extrayez l'adresse IPv4 en tant que structure de données de la plate-forme.
Utilisez ToIPv4() const
pour extraire le contenu sous forme d'adresse IPv4, si possible. Les adresses IPv6 et l'adresse non spécifiée sont extraites en tant que 0.0.0.0
.
Le résultat est de type struct in_addr
(sur POSIX) ou ip4_addr_t
(sur LwIP).
Détails | |
---|---|
Renvoie |
Adresse IPv4 encapsulée, ou
0.0.0.0 si l'adresse n'est pas spécifiée ou n'est pas une adresse IPv4. |
ToIPv4
struct in_addr ToIPv4( void ) const
ToIPv6
ip6_addr_t ToIPv6( void ) const
Extrayez l'adresse IPv6 en tant que structure de données de la plate-forme.
Si possible, utilisez ToIPv6() const
pour extraire le contenu sous forme d'adresse IPv6. Les adresses IPv4 et l'adresse non spécifiée sont extraites en tant que [::]
.
Le résultat est de type struct in6_addr
(sur POSIX) ou ip6_addr_t
(sur LwIP).
Détails | |
---|---|
Renvoie |
Adresse IPv4 encapsulée, ou
[::] 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
Émettre l'adresse IP dans un format de présentation de texte conventionnel
Utilisez ToString(char *buf, uint32_t bufSize) const
pour écrire la forme de présentation de texte conventionnelle de l'adresse IP dans la mémoire située dans buf
et étendre jusqu'à bufSize
octets, y compris son caractère de terminaison NUL.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
Remarque: cette méthode n'est pas conforme à la norme RFC 5952 sur certaines plates-formes. Plus précisément, l'utilisation de zéro compression ne peut pas être appliquée conformément à la section 4.2.
Détails | |
---|---|
Renvoie |
L'argument
buf en l'absence d'erreur de mise en forme, ou zéro dans le cas contraire. |
Type
IPAddressType Type( void ) const
Extrayez le type d'adresse IP.
Utilisez cette méthode pour renvoyer une valeur de type énuméré IPAddressType
afin d'indiquer le type de l'adresse IP.
Détails | |||||||
---|---|---|---|---|---|---|---|
Valeurs de retour |
|
WriteAddress
void WriteAddress( uint8_t *& p ) const
Émet l'adresse IP dans la représentation réseau standard.
Utilisez WriteAddress(uint8_t *&p)
pour encoder l'adresse IP au format binaire défini par la RFC 4291 pour les adresses IPv6. Les adresses IPv4 sont encodées conformément à la section 2.5.5.1 "Adresse IPv4 compatible avec IPv4" (V4COMPAT).
Détails | |||
---|---|---|---|
Paramètres |
|
opérateur!=
bool operator!=( const IPAddress & other ) const
Comparez cette adresse IP à une autre pour déterminer l'équivalence.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs de retour |
|
opérateur=
IPAddress & operator=( const IPAddress & other )
Opérateur d'affectation classique.
Détails | |||
---|---|---|---|
Paramètres |
|
||
Renvoie |
Référence à cet objet.
|
opérateur==
bool operator==( const IPAddress & other ) const
Comparez cette adresse IP à une autre pour déterminer l'équivalence.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs de retour |
|
Fonctions statiques publiques
FromIPv4
IPAddress FromIPv4( const ip4_addr_t & addr )
Il s'agit d'une fonction de membre surchargée, fournie pour plus de commodité. Elle ne diffère de la fonction ci-dessus que par le ou les arguments qu'elle accepte.
FromIPv4
IPAddress FromIPv4( const struct in_addr & addr )
Injectez l'adresse IPv4 à partir d'une structure de données de plate-forme.
Utilisez FromIPv4(const ip4_addr_t &addr)
pour injecter addr
en tant qu'adresse IPv4.
L'argument addr
est de type const struct in_addr&
(sur POSIX) ou const ip4_addr_t&
(sur LwIP).
Détails | |
---|---|
Renvoie |
Adresse IP construite.
|
FromIPv6
IPAddress FromIPv6( const ip6_addr_t & addr )
Il s'agit d'une fonction de membre surchargée, fournie pour plus de commodité. Elle ne diffère de la fonction ci-dessus que par le ou les arguments qu'elle accepte.
FromIPv6
IPAddress FromIPv6( const struct in6_addr & addr )
Injectez l'adresse IPv6 à partir d'une structure de données de plate-forme.
Utilisez FromIPv6(const ip6_addr_t &addr)
pour injecter addr
en tant qu'adresse IPv6.
L'argument addr
est de type const struct in6_addr&
(sur POSIX) ou const ip6_addr_t&
(sur LwIP).
Détails | |
---|---|
Renvoie |
Adresse IP construite.
|
FromSockAddr
IPAddress FromSockAddr( const struct sockaddr & sockaddr )
Injecter l'adresse IPv6 à partir d'un struct sockaddr&
POSIX
Utilisez FromSockAddr(const struct sockaddr& sockaddr)
pour injecter sockaddr.sa_addr
en tant qu'adresse IPv6.
Détails | |
---|---|
Renvoie |
Adresse IP construite.
|
FromString
bool FromString( const char *str, IPAddress & output )
Scannez l'adresse IP à partir du texte de présentation conventionnel.
Utilisez FromString(const char *str, IPAddress& output)
pour remplacer une adresse IP en analysant la présentation de texte conventionnelle située à l'emplacement str
.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
Détails | |||||
---|---|---|---|---|---|
Valeurs de retour |
|
FromString
bool FromString( const char *str, size_t strLen, IPAddress & output )
Scannez l'adresse IP à partir du texte de présentation conventionnel.
Utilisez FromString(const char *str, size_t strLen, IPAddress& output)
pour remplacer une adresse IP en analysant la présentation de texte conventionnelle située à l'emplacement str
.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
Détails | |||||
---|---|---|---|---|---|
Valeurs de retour |
|
MakeIPv4Broadcast
IPAddress MakeIPv4Broadcast( void )
Créez une adresse de diffusion IPv4.
Détails | |
---|---|
Renvoie |
Adresse IP construite.
|
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES] )
Construit une adresse de multidiffusion IPv6 à partir de ses différentes parties.
Utilisez MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
pour construire une adresse de multidiffusion IPv6 avec flags
pour le champ d'application de routage scope
et les octets d'identifiant de groupe groupId
.
Détails | |
---|---|
Renvoie |
Adresse IP construite.
|
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, uint32_t aGroupId )
Construit une adresse de multidiffusion IPv6 à partir de ses différentes parties.
Utilisez MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId)
pour créer une adresse de multidiffusion IPv6 avec flags
pour le champ d'application de routage scope
et l'identifiant de groupe groupId
.
Détails | |
---|---|
Renvoie |
Adresse IP construite.
|
MakeIPv6PrefixMulticast
IPAddress MakeIPv6PrefixMulticast( uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId )
Créez une adresse de multidiffusion IPv6 temporaire avec un préfixe à partir des éléments de cette adresse.
Utilisez MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId)
pour construire une adresse de multidiffusion IPv6 temporaire avec un préfixe d'adresse IPv6 pour le champ d'application de routage scope
et les octets d'identifiant de groupe groupId
, qualifiés par le préfixe prefix
de prefixlen
bits.
Détails | |
---|---|
Renvoie |
Adresse IP construite.
|
MakeIPv6TransientMulticast
IPAddress MakeIPv6TransientMulticast( uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES] )
Construit une adresse de multidiffusion IPv6 temporaire à partir des éléments de cette adresse.
Utilisez MakeIPv6TransientMulticast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
pour construire une adresse de multidiffusion IPv6 temporaire avec flags
pour le champ d'application de routage scope
et les octets d'identifiant de groupe groupId
.
Détails | |
---|---|
Renvoie |
Adresse IP construite.
|
MakeIPv6WellKnownMulticast
IPAddress MakeIPv6WellKnownMulticast( uint8_t aScope, uint32_t aGroupId )
Construit une adresse de multidiffusion IPv6 bien connue à partir de ses différentes parties.
Utilisez MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId)
afin de créer une adresse de multidiffusion IPv6 pour le champ d'application de routage scope
et l'identifiant de groupe groupId
.
Détails | |
---|---|
Renvoie |
Adresse IP construite.
|
MakeLLA
IPAddress MakeLLA( uint64_t interfaceId )
Construit une adresse de liaison locale (LL) IPv6 à partir de son IID.
Utilisez MakeLLA(uint64_t interfaceId)
pour créer une adresse de liaison locale (LL) IPv6 avec l'identifiant d'interface interfaceId
.
Détails | |
---|---|
Renvoie |
Adresse IP construite.
|
MakeULA
IPAddress MakeULA( uint64_t globalId, uint16_t subnet, uint64_t interfaceId )
Construit une adresse locale unique (ULA) IPv6 à partir de ses différentes parties.
Utilisez MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
pour créer une adresse locale unique (ULA) avec l'identifiant de réseau global globalId
, l'identifiant de sous-réseau subnet
et l'identifiant d'interface (IID) interfaceId
.
Détails | |
---|---|
Renvoie |
Adresse IP construite.
|
ReadAddress
void ReadAddress( const uint8_t *& p, IPAddress & output )
Émet l'adresse IP dans la représentation réseau standard.
Utilisez ReadAddress(uint8_t *&p, IPAddress &output)
pour décoder l'adresse IP au niveau de p
vers l'objet output
.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|