IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Viadeo Twitter Facebook Share on Google+   
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QHostAddress

La classe QHostAddress encapsule une adresse IP. Plus d'informations...

  
 #include <QHostAddress>

Description détaillée

La classe QHostAddress encapsule une adresse IP.

Cette classe contient une adresse IPv4 ou IPv6 indépendante de la plate-forme et du protocole.

QHostAddress est habituellement utilisée avec les classes QTcpSocket, QTcpServer et QUdpSocket pour se connecter à un hôte ou pour configurer un serveur.

Une adresse hôte est définie avec la fonction setAddress() et récupérée avec toIPv4Address(), toIPv6Address() ou toString(). Vous pouvez vérifier le type en utilisant la fonction protocol().

Note : notez que QHostAddress n'effectue par de recherche DNS. Pour cela Il faut utiliser la classe QHostInfo.

La classe gère aussi une liste d'adresses prédéfinies : Null, LocalHost, LocalHostIPv6, Broadcast et Any.

Voir aussi QHostInfo, QTcpSocket, QTcpServer et QUdpSocket.

Type

enum QHostAddress::SpecialAddress

Constante Valeur Description
QHostAddress::Null   L'objet d'adresse nul. Équivalent à QHostAddress().
QHostAddress::LocalHost 2 L'adresse IPv4 de l'hôte local. Équivalent à QHostAddress(« 127.0.0.1 »).
QHostAddress::LocalHostIPv6 3 L'adresse IPv6 de diffusion (broadcast). Équivalent à QHostAddress( »::1 »).
QHostAddress::Broadcast 1 L'adresse IPv4 de diffusion (broadcast). Équivalent à QHostAddress(« 255.255.255.255 »).
QHostAddress::Any 4 L'adresse IPv4 correspondant à n'importe quelle adresse. Équivalent à QHostAddress(« 0.0.0.0 »).
QHostAddress::AnyIPv6 5 L'adresse IPv6 correspondant à n'importe quelle adresse. Équivalent à QHostAddress( »:: »).

Fonctions membres

QHostAddress::QHostAddress ()

Construit un objet d'adresse hôte avec l'adresse IP 0.0.0.0.

Voir aussi clear().

QHostAddress::QHostAddress ( quint32 ip4Addr )

Construit un objet d'adresse hôte avec l'adresse IPv4 ip4Addr.

QHostAddress::QHostAddress ( quint8 * ip6Addr )

Construit un objet d'adresse hôte avec l'adresse IPv6 ip6Addr.

ip6Addr doit être un tableau de 16 octets ordonnés pour le réseau (grand boutisme).

QHostAddress::QHostAddress ( const Q_IPV6ADDR & ip6Addr )

Construit un objet d'adresse hôte avec l'adresse IPv6 ip6Addr.

QHostAddress::QHostAddress ( const sockaddr * sockaddr )

Construit une adresse IPv4 ou IPv6 en utilisant l'adresse spécifiée par la structure native sockaddr.

Voir aussi setAddress().

QHostAddress::QHostAddress ( const QString & address )

Construit une adresse IPv4 ou IPv6 basée sur la chaîne de caractères address (par exemple, « 127.0.0.1 »).

Voir aussi setAddress().

QHostAddress::QHostAddress ( const QHostAddress & address )

Construit une copie de l'adresse address donnée.

QHostAddress::QHostAddress ( SpecialAddress address )

Construit un objet QHostAddress pour l'adresse address.

QHostAddress::~QHostAddress ()

Détruit l'objet d'adresse hôte.

void QHostAddress::clear ()

Définit l'adresse hôte à 0.0.0.0.

bool QHostAddress::isInSubnet ( const QHostAddress & subnet, int netmask ) const

Retourne true si l'adresse IP est dans le sous-réseau décrit par le préfixe réseau subnet et le masque réseau netmask.

Une adresse IP est considérée appartenant à un sous-réseau si elle est contenue entre la plus petite et la plus grande adresse de ce sous-réseau. Dans le cas de l'IPv4, la plus petite adresse est l'adresse du réseau, alors que la plus grande est l'adresse de diffusion (broadcast).

L'argument subnet ne doit pas être obligatoirement l'adresse du réseau (c'est-à-dire la plus petite adresse dans le sous-réseau). Ce peut être n'importe quelle adresse IP valide appartenant à ce sous-réseau. En particulier, si elle est égale à l'adresse IP contenue dans cet objet, la fonction retourne toujours true (si le masque réseau est valide).

Cette fonction a été introduite dans Qt 4.5.

Voir aussi parseSubnet().

bool QHostAddress::isInSubnet ( const QPair<QHostAddress, int> & subnet ) const

Il s'agit d'une fonction surchargée.

Retourne true si cette adresse IP est dans le sous-réseau décrit par subnet. Le membre subnet de QHostAddress contient le préfixe réseau et le int (second) membre contient le masque réseau (taille du préfixe).

Cette fonction a été introduite dans Qt 4.5.

bool QHostAddress::isNull () const

Retourne true si l'adresse hôte est nulle (INADDR_ANY ou in6addr_any). Le constructeur par défaut crée une adresse nulle et cette adresse est invalide quels que soient l?hôte ou l?interface.

QPair<QHostAddress, int> QHostAddress::parseSubnet ( const QString & subnet ) [static]

Analyse l'adresse IP et l'information de sous-réseau contenue dans subnet et retourne le préfixe réseau pour ce réseau et la taille du préfixe.

L'adresse IP et le masque réseau doivent être séparés par un slash (/).

Cette fonction supporte des arguments dans les formats suivants :

  • 123.123.123.123/n où n est une valeur comprise entre 0 et 32 ;
  • 123.123.123.123/255.255.255.255 ;
  • <ipv6-address>/n où n est une valeur comprise entre 0 et 128.

Pour les adresses IPv4, cette fonction accepte aussi bien les composants finaux manquants (par exemple, moins de 4 octets, comme « 192.168.1 »), suivis ou non par un point. Dans ce cas, si le masque réseau est également absent, il est défini au nombre d'octets passés (dans l'exemple ci-dessus, il serait de 24, pour 3 octets).

Cette fonction a été introduite dans Qt 4.5.

Voir aussi isInSubnet().

QAbstractSocket::NetworkLayerProtocol QHostAddress::protocol () const

Retourne la couche protocole du réseau de l'adresse hôte.

QString QHostAddress::scopeId () const

Retourne l'identifiant de portée (scope) pour une adresse IPv6. Pour les adresses IPv4 ou si l'adresse ne contient pas d?identifiant de portée, une chaîne de caractères QString vide est renvoyée.

L'identifiant de portée IPv6 spécifie l›accessibilité pour les adresses IPv6 non globales, limitant le domaine dans lequel l'adresse peut être utilisée. Toute adresse IPv6 est associée à cette portée d'accessibilité. L?identifiant de portée est utilisé pour différencier deux adresses dont l'unicité globale n'est pas garantie.

IPv6 spécifie les quatre niveaux suivants d'accessibilités :

  • node-local (local au n?ud) : adresses qui sont utilisées uniquement pour communiquer avec les services dans la même interface (par exemple, la boucle locale  »::1 ») ;
  • link-local (local au lien) : adresses qui sont locales à l'interface réseau (lien). Il y a toujours un lien local pour chaque interface IPv6 de votre hôte. Les adresses locales au lien (« fe80... ») sont générées à partir de l'adresse MAC de l'adaptateur réseau local et ne sont pas garanties uniques ;
  • site-local (local au site) : adresses qui sont locales au site/réseau privé (par exemple, l'intranet de l'entreprise). Les adresses locales au site (« fec0... ») sont habituellement distribuées par le routeur du site et ne sont pas garanties uniques en dehors du site local ;
  • global (globale) : pour les adresses globalement routables, telles que les serveurs publics sur Internet.

Lors de l'utilisation d'une adresse locale au lien ou locale au site pour les connexions IPv6, vous devez spécifier l'identifiant de portée. L'identifiant de portée pour une adresse locale est généralement le même que le nom de l'interface (par exemple, « eth0 », « en1 ») ou un nombre (par exemple, « 1 », « 2 »).

Cette fonction a été introduite dans Qt 4.1.

Voir aussi setScopeId().

void ::setAddress ( quint32 ip4Addr )

Définit l'adresse IPv4 spécifiée par ip4Addr.

void QHostAddress::setAddress ( quint8 * ip6Addr )

Il s'agit d'une fonction surchargée.

Définit l'adresse IPv6 spécifiée par ip6Addr.

ip6Addr doit être un tableau de 16 octets ordonnés pour le réseau (les octets de poids fort en premier).

void QHostAddress::setAddress ( const Q_IPV6ADDR & ip6Addr )

Il s'agit d'une fonction surchargée.

Définit l'adresse IPv6 spécifiée par ip6Addr.

bool QHostAddress::setAddress ( const QString & address )

Il s'agit d'une fonction surchargée.

Définit l'adresse IPv4 ou IPv6 spécifiée par la représentation en chaîne de caractères adress (par exemple, « 127.0.0.1 »). Retourne true et définit l'adresse si l'adresse a été analysée avec succès ; sinon retourne false.

void QHostAddress::setAddress ( const sockaddr * sockaddr )

Il s'agit d'une fonction surchargée.

Définit l'adresse IPv4 ou IPv6 spécifiée par la structure native sockaddr. Retourne true et définit l'adresse si l'adresse a été analysée avec succès ; sinon retourne false.

void QHostAddress::setScopeId ( const QString & id )

Définit l'identifiant de portée de l'adresse IPv6 à ‹id›. Si le protocole d'adressage n'est pas IPv6, cette fonction ne fait rien.

Cette fonction a été introduite dans Qt 4.1.

Voir aussi scopeId().

quint32 QHostAddress::toIPv4Address () const

Retourne l'adresse IPv4 sous la forme d'un nombre.

Par exemple, si l'adresse est 127.0.0.1, la valeur retournée est 2130706433 (c'est-à-dire 0x7f000001).

Cette valeur n'est valide que si le Protocol() est IPv4Protocol.

Voir aussi toString().

Q_IPV6ADDR QHostAddress::toIPv6Address () const

Retourne l'adresse IPv6 dans une structure Q_IPV6ADDR. La structure consiste en 16 caractères non signés.

 Q_IPV6ADDR addr = hostAddr.toIPv6Address();
 // addr contient 16 caractères non signés
 
 for (int i = 0; i < 16; ++i) {
     // traîte addr[i]
 }

Cette valeur n'est valide que si le protocol() est IPv6Protocol.

Voir aussi toString().

QString QHostAddress::toString () const

Retourne l'adresse dans une chaîne de caractères.

Par exemple, si l'adresse est une adresse IPv4 127.0.0.1, la chaîne de caractères renvoyée est « 127.0.0.1 ».

Voir aussi toIPv4Address().

bool QHostAddress::operator!= ( const QHostAddress & other ) const

Retourne true si l'adresse hôte n'est pas identique à l'adresse other donnée ; sinon retourne false.

Cette fonction a été introduite dans Qt 4.2.

bool QHostAddress::operator!= ( SpecialAddress other ) const

Retourne true si l'adresse hôte n'est pas identique à l'adresse other donnée ; sinon retourne false.

QHostAddress & QHostAddress::operator= ( const QHostAddress & address )

Affecte l'adresse hôte address à cet objet et retourne une référence sur celui-ci.

QHostAddress & QHostAddress::operator= ( const QString & address )

Affecte l'adresse hôte address à cet objet et retourne une référence sur celui-ci.

Voir aussi setAddress().

bool QHostAddress::operator== ( const QHostAddress & other ) const

Retourne true si l'adresse hôte est identique à l'adresse other donnée ; sinon retourne false.

bool QHostAddress::operator== ( SpecialAddress other ) const

Retourne true si l'adresse hôte est identique à l'adresse other donnée ; sinon retourne false.

En relation mais non membres de la classe

QDataStream & operator<< ( QDataStream & out, const QHostAddress & address )

Écrit l'adresse hôte address donnée sur le flux stream et retourne une référence sur le flux.

Voir aussi Sérialisation des types de données Qt.

QDataStream & operator>> ( QDataStream & in, QHostAddress & address )

Lit une adresse hôte à partir du flux stream dans address et retourne une référence sur le flux.

Voir aussi Sérialisation des types de données Qt.

Remerciements

Merci à Alexandre Laurent pour la traduction, ainsi qu'à Ilya Diallo et Claude Leloup pour la relecture !

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 4.7
Copyright © 2024 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !