nl:: Inet:: IPAddress
#include <src/inet/IPAddress.h>
son adresse IP.
Résumé
La couche Inet Nest utilise des objets de cette classe pour représenter les adresses IP (indépendamment de la version du protocole).
Attributs publics |
|
---|---|
Addr[4]
|
uint32_t
Tableau de mots opaques contenant 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 IPv6 ULA.
|
InterfaceId(void) const
|
uint64_t
Extrayez l'IID d'une adresse IPv6 ULA.
|
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 une adresse de diffusion IPv4.
|
IsIPv4Multicast(void) const
|
bool
Vérifier si l'adresse est une multidiffusion 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 unicast globale IPv6.
|
IsIPv6LinkLocal(void) const
|
bool
Vérifiez si l'adresse est une adresse de liaison locale (LL) IPv6.
|
IsIPv6Multicast(void) const
|
bool
Vérifier si l'adresse est une multidiffusion IPv6
|
IsIPv6ULA(void) const
|
bool
Vérifiez si l'adresse est une adresse IPv6 unique-local (ULA).
|
IsMulticast(void) const
|
bool
Vérifiez si l'adresse est de type IPv4 ou IPv6 multicast.
|
Subnet(void) const
|
uint16_t
Extrayez l'identifiant de sous-réseau 16 bits d'une adresse ULA IPv6.
|
ToIPv4(void) const
|
Extraire l'adresse IPv4 en tant que structure de données de plate-forme
|
ToIPv4(void) const
|
struct in_addr
|
ToIPv6(void) const
|
ip6_addr_t
Extraire l'adresse IPv6 en tant que structure de données de 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 texte conventionnel
|
Type(void) const
|
IPAddressType
Extrayez le type de l'adresse IP.
|
WriteAddress(uint8_t *& p) const
|
void
Émission de l'adresse IP dans la représentation standard du réseau
|
operator!=(const IPAddress & other) const
|
bool
Comparez cette adresse IP à une autre pour vérifier l'inéquivalence.
|
operator=(const IPAddress & other)
|
Opérateur d'affectation traditionnel.
|
operator==(const IPAddress & other) const
|
bool
Comparez cette adresse IP à une autre pour vérifier son équivalence.
|
Fonctions statiques publiques |
|
---|---|
FromIPv4(const ip4_addr_t & addr)
|
|
FromIPv4(const struct in_addr & addr)
|
Injecter 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)
|
Injecter 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
Analysez l'adresse IP à partir du texte de présentation conventionnel.
|
FromString(const char *str, size_t strLen, IPAddress & output)
|
bool
Analysez l'adresse IP à partir du texte de présentation conventionnel.
|
MakeIPv4Broadcast(void)
|
Construire une adresse de diffusion IPv4
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
|
Construire une adresse de multidiffusion IPv6 à partir de ses parties.
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, uint32_t aGroupId)
|
Construire une adresse de multidiffusion IPv6 à partir de ses parties.
|
MakeIPv6PrefixMulticast(uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId)
|
Construire une adresse de multidiffusion IPv6 temporaire à partir de ses parties.
|
MakeIPv6TransientMulticast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
|
Construire une adresse multicast IPv6 temporaire à partir de ses parties.
|
MakeIPv6WellKnownMulticast(uint8_t aScope, uint32_t aGroupId)
|
Construire une adresse de multidiffusion IPv6 bien connue à partir de ses composants.
|
MakeLLA(uint64_t interfaceId)
|
Construire une adresse de liaison locale (LL) IPv6 à partir de son IID
|
MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
|
Construire une adresse IPv6 unique (ULA) à partir de ses différentes parties.
|
ReadAddress(const uint8_t *& p, IPAddress & output)
|
void
Émission de l'adresse IP dans la représentation standard du réseau
|
Attributs publics
Addr
uint32_t Addr[4]
Tableau de mots opaques contenant des adresses IP (indépendamment de la version du protocole)
L’adresse IPv6 utilise la totalité des 128 bits divisés en quatre entiers non signés ordonnés aux octets sur le réseau de 32 bits. Les adresses IPv4 sont V4COMPAT, c'est-à-dire que les trois premiers mots sont zéro et 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'équivalence. 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 IPv6 ULA.
Utilisez cette méthode avec une adresse IPv6 unique (ULA) pour extraire l'identifiant du réseau global, qui correspond aux 40 bits qui suivent immédiatement le préfixe de réseau ULA distinct, c'est-à-dire fd00::/8. En d'autres termes, l'identifiant de réseau global est situé dans les cinq octets de l'adresse, allant du 2e 2e au 6e octet.
Détails | |
---|---|
Renvoie |
Identifiant de réseau global de 40 bits, ou zéro si l'adresse IP n'est pas une adresse IPv6 unique-local.
|
InterfaceId
uint64_t InterfaceId( void ) const
Extrayez l'IID d'une adresse IPv6 ULA.
Utilisez cette méthode avec une adresse IPv6 unique (ULA) 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 unique-local.
|
IsIPv4
bool IsIPv4( void ) const
Vérifiez si l'adresse est compatible avec le protocole IPv4.
Utilisez cette méthode pour vérifier si l'adresse appartient à la famille d'adresses IPv4. Remarque: l'adresse non spécifiée n'est pas une adresse IPv4.
Détails | |||||
---|---|---|---|---|---|
Valeurs renvoyées |
|
IsIPv4Broadcast
bool IsIPv4Broadcast( void ) const
Vérifiez si l'adresse est une adresse de diffusion IPv4.
Utilisez cette méthode pour vérifier si l'adresse correspond à l'adresse de diffusion IPv4 à usage spécifique.
Détails | |||||
---|---|---|---|---|---|
Valeurs renvoyées |
|
IsIPv4Multicast
bool IsIPv4Multicast( void ) const
Vérifier si l'adresse est une multidiffusion IPv4
Utilisez cette méthode pour vérifier si l'adresse est une adresse de multidiffusion IPv4.
Détails | |||||
---|---|---|---|---|---|
Valeurs renvoyées |
|
IsIPv6
bool IsIPv6( void ) const
Vérifiez si l'adresse est compatible avec le protocole IPv6.
Utilisez cette méthode pour vérifier si l'adresse appartient à la famille d'adresses IPv6. Remarque: l'adresse non spécifiée n'est pas une adresse IPv6.
Détails | |||||
---|---|---|---|---|---|
Valeurs renvoyées |
|
IsIPv6GlobalUnicast
bool IsIPv6GlobalUnicast( void ) const
Vérifiez si l'adresse est une adresse unicast globale IPv6.
Utilisez cette méthode pour vérifier si l'adresse appartient à la famille d'adresses IPv6 et présente le préfixe d'adresse unicast global.
Détails | |||||
---|---|---|---|---|---|
Valeurs renvoyées |
|
IsIPv6LinkLocal
bool IsIPv6LinkLocal( void ) const
Vérifiez si l'adresse est une adresse de liaison locale (LL) IPv6.
Utilisez cette méthode pour vérifier si l'adresse appartient à la famille d'adresses IPv6 et possède le préfixe d'adresse de liaison locale IPv6 réservé.
Détails | |||||
---|---|---|---|---|---|
Valeurs renvoyées |
|
IsIPv6Multicast
bool IsIPv6Multicast( void ) const
Vérifier si l'adresse est une multidiffusion IPv6
Utilisez cette méthode pour vérifier si l'adresse appartient à la famille d'adresses IPv6 et possède le préfixe d'adresse de multidiffusion IPv6 réservé.
Détails | |||||
---|---|---|---|---|---|
Valeurs renvoyées |
|
EstIPv6ULA
bool IsIPv6ULA( void ) const
Vérifiez si l'adresse est une adresse IPv6 unique-local (ULA).
Utilisez cette méthode pour vérifier si l'adresse appartient à la famille d'adresses IPv6 et possède le préfixe d'adresse IPv6 unique réservé.
Détails | |||||
---|---|---|---|---|---|
Valeurs renvoyées |
|
IsMulticast
bool IsMulticast( void ) const
Vérifiez si l'adresse est de type IPv4 ou IPv6 multicast.
Utilisez cette méthode pour vérifier si l'adresse appartient à la famille d'adresses IPv4 ou IPv6 et possède le préfixe d'adresse multicast IPv4 ou IPv6 réservé.
Détails | |||||
---|---|---|---|---|---|
Valeurs renvoyées |
|
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 IPv6 unique (ULA) 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 est situé dans les 7e et 8e octets d'une adresse de 16 octets.
Détails | |
---|---|
Renvoie |
Identifiant de sous-réseau de 16 bits, ou zéro si l'adresse IP n'est pas une adresse IPv6 unique-local.
|
ToIPv4
ip4_addr_t ToIPv4( void ) const
Extraire l'adresse IPv4 en tant que structure de données de plate-forme
Si possible, utilisez ToIPv4() const
pour extraire le contenu sous la forme d'une adresse IPv4. 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
Extraire l'adresse IPv6 en tant que structure de données de plate-forme
Si possible, utilisez ToIPv6() const
pour extraire le contenu sous la forme d'une 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 |
L'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 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 en étendant jusqu'à bufSize
octets, y compris son caractère de fin NUL.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
Remarque: la norme 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 de l'adresse IP.
Utilisez cette méthode pour renvoyer une valeur du type énuméré IPAddressType
pour indiquer le type de l'adresse IP.
Détails | |||||||
---|---|---|---|---|---|---|---|
Valeurs renvoyées |
|
WriteAddress
void WriteAddress( uint8_t *& p ) const
Émission de l'adresse IP dans la représentation standard du réseau
Utilisez WriteAddress(uint8_t *&p)
pour encoder l'adresse IP au format binaire défini par la norme RFC 4291 pour les adresses IPv6. Les adresses IPv4 sont encodées conformément à la section 2.5.5.1 "Compatibilité IPv4
IPv6 Address" (Adresse IPv6) (V4COMPAT).
Détails | |||
---|---|---|---|
Paramètres |
|
operator!=
bool operator!=( const IPAddress & other ) const
Comparez cette adresse IP à une autre pour vérifier l'inéquivalence.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs renvoyées |
|
operator=
IPAddress & operator=( const IPAddress & other )
Opérateur d'affectation traditionnel.
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 vérifier son équivalence.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs renvoyées |
|
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 des fonctions ci-dessus que par le ou les arguments qu'elle accepte.
FromIPv4
IPAddress FromIPv4( const struct in_addr & addr )
Injecter 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 des fonctions ci-dessus que par le ou les arguments qu'elle accepte.
FromIPv6
IPAddress FromIPv6( const struct in6_addr & addr )
Injecter 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 )
Analysez l'adresse IP à partir du texte de présentation conventionnel.
Utilisez FromString(const char *str, IPAddress& output)
pour écraser une adresse IP en analysant la présentation texte conventionnelle située à l'adresse str
.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
Détails | |||||
---|---|---|---|---|---|
Valeurs renvoyées |
|
FromString
bool FromString( const char *str, size_t strLen, IPAddress & output )
Analysez l'adresse IP à partir du texte de présentation conventionnel.
Utilisez FromString(const char *str, size_t strLen, IPAddress& output)
pour écraser une adresse IP en analysant la présentation texte conventionnelle située à l'adresse str
.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
Détails | |||||
---|---|---|---|---|---|
Valeurs renvoyées |
|
MakeIPv4Broadcast
IPAddress MakeIPv4Broadcast( void )
Construire 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] )
Construire une adresse de multidiffusion IPv6 à partir de ses 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 )
Construire une adresse de multidiffusion IPv6 à partir de ses parties.
Utilisez MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId)
pour construire 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 )
Construire une adresse de multidiffusion IPv6 temporaire à partir de ses parties.
Utilisez MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId)
pour construire une adresse de multidiffusion IPv6 temporaire avec 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 de longueur.
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] )
Construire une adresse multicast IPv6 temporaire à partir de ses parties.
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 )
Construire une adresse de multidiffusion IPv6 bien connue à partir de ses composants.
Utilisez MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId)
pour construire 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 )
Construire une adresse de liaison locale (LL) IPv6 à partir de son IID
Utilisez MakeLLA(uint64_t interfaceId)
pour construire 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 )
Construire une adresse IPv6 unique (ULA) à partir de ses différentes parties.
Utilisez MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
pour construire une adresse ULA (unique-local address) 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 )
Émission de l'adresse IP dans la représentation standard du réseau
Utilisez ReadAddress(uint8_t *&p, IPAddress &output)
pour décoder l'adresse IP à p
dans l'objet output
.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|