QHostInfo Class
La classe QHostInfo fournit des fonctions statiques pour la recherche de noms d'hôtes. Plus d'informations...
| En-tête : | #include <QHostInfo> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Network)target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake : | QT += network |
- Liste de tous les membres, y compris les membres hérités
- QHostInfo fait partie de l'API de programmation réseau.
Remarque : toutes les fonctions de cette classe sont réentrantes.
Types publics
| enum | HostInfoError { NoError, HostNotFound, UnknownError } |
Fonctions publiques
| QHostInfo(int id = -1) | |
| QHostInfo(const QHostInfo &other) | |
| QHostInfo(QHostInfo &&other) | |
| ~QHostInfo() | |
| QList<QHostAddress> | addresses() const |
| QHostInfo::HostInfoError | error() const |
| QString | errorString() const |
| QString | hostName() const |
| int | lookupId() const |
| void | setAddresses(const QList<QHostAddress> &addresses) |
| void | setError(QHostInfo::HostInfoError error) |
| void | setErrorString(const QString &str) |
| void | setHostName(const QString &hostName) |
| void | setLookupId(int id) |
| void | swap(QHostInfo &other) |
| QHostInfo & | operator=(QHostInfo &&other) |
| QHostInfo & | operator=(const QHostInfo &other) |
Membres publics statiques
| void | abortHostLookup(int id) |
| QHostInfo | fromName(const QString &name) |
| QString | localDomainName() |
| QString | localHostName() |
| int | lookupHost(const QString &name, const QObject *receiver, const char *member) |
| int | lookupHost(const QString &name, Functor &&functor) |
| int | lookupHost(const QString &name, const QObject *context, Functor functor) |
Description détaillée
QHostInfo permet de trouver l'adresse IP associée à un nom d'hôte, ou le nom d'hôte associé à une adresse IP. La classe fournit deux fonctions statiques de commodité : une qui fonctionne de manière asynchrone et émet un signal lorsque l'hôte est trouvé, et une qui bloque et renvoie un objet QHostInfo.
Pour rechercher les adresses IP d'un hôte de manière asynchrone, appelez lookupHost(), qui prend le nom de l'hôte ou l'adresse IP, un objet récepteur et une signature de slot comme arguments et renvoie un ID. Vous pouvez interrompre la recherche en appelant abortHostLookup() avec l'ID de la recherche.
Exemple :
// To find the IP address of qt-project.org QHostInfo::lookupHost("qt-project.org", this, &MyWidget::printResults); // To find the host name for 4.2.2.1 QHostInfo::lookupHost("4.2.2.1", this, &MyWidget::printResults);
Le slot est invoqué lorsque les résultats sont prêts. Les résultats sont stockés dans un objet QHostInfo. Appelez addresses() pour obtenir la liste des adresses IP de l'hôte et hostName() pour obtenir le nom de l'hôte recherché.
Si la recherche a échoué, error() renvoie le type d'erreur qui s'est produite. errorString() donne une description lisible par l'homme de l'erreur de recherche.
Si vous souhaitez une recherche bloquante, utilisez la fonction QHostInfo::fromName() :
QHostInfo prend en charge les noms de domaine internationalisés (IDN) grâce aux normes IDNA et Punycode.
Pour récupérer le nom de l'hôte local, utilisez la fonction statique QHostInfo::localHostName().
QHostInfo utilise les mécanismes fournis par le système d'exploitation pour effectuer la recherche. Conformément à la RFC 6724, il n'est pas garanti que toutes les adresses IP enregistrées pour un domaine ou un hôte seront renvoyées.
Note : Depuis Qt 4.6.1, QHostInfo utilise plusieurs threads pour la recherche DNS au lieu d'un seul thread dédié au DNS. Cela améliore les performances, mais change également l'ordre d'émission des signaux lors de l'utilisation de lookupHost() par rapport aux versions précédentes de Qt.
Note : Depuis Qt 4.6.3, QHostInfo utilise un petit cache DNS interne de 60 secondes pour améliorer les performances.
Voir aussi QAbstractSocket, RFC 3492, et RFC 6724.
Documentation sur les types de membres
enum QHostInfo::HostInfoError
Cette énumération décrit les différentes erreurs qui peuvent survenir lors de la résolution d'un nom d'hôte.
| Constante | Valeur | Description de l'erreur |
|---|---|---|
QHostInfo::NoError | 0 | La recherche a réussi. |
QHostInfo::HostNotFound | 1 | Aucune adresse IP n'a été trouvée pour l'hôte. |
QHostInfo::UnknownError | 2 | Une erreur inconnue s'est produite. |
Documentation des fonctions membres
[explicit] QHostInfo::QHostInfo(int id = -1)
Construit un objet host info vide avec l'ID de recherche id.
Voir aussi lookupId().
QHostInfo::QHostInfo(const QHostInfo &other)
Construit une copie de other.
[noexcept] QHostInfo::QHostInfo(QHostInfo &&other)
Move-construit un nouveau QHostInfo à partir de other.
Note : L'objet déplacé other est placé dans un état partiellement formé, dans lequel les seules opérations valides sont la destruction et l'attribution d'une nouvelle valeur.
[noexcept] QHostInfo::~QHostInfo()
Détruit l'objet host info.
[static] void QHostInfo::abortHostLookup(int id)
Abandonne la recherche d'hôte avec l'ID id, tel que renvoyé par lookupHost().
Voir aussi lookupHost() et lookupId().
QList<QHostAddress> QHostInfo::addresses() const
Renvoie la liste des adresses IP associées à hostName(). Cette liste peut être vide.
Exemple :
QHostInfo info; ... if (!info.addresses().isEmpty()) { QHostAddress address = info.addresses().first(); // use the first IP address }
Voir aussi setAddresses(), hostName() et error().
QHostInfo::HostInfoError QHostInfo::error() const
Renvoie le type d'erreur qui s'est produite si la recherche du nom d'hôte a échoué ; sinon, renvoie NoError.
Voir aussi setError() et errorString().
QString QHostInfo::errorString() const
Si la recherche a échoué, cette fonction renvoie une description lisible de l'erreur ; sinon, elle renvoie "Erreur inconnue".
Voir également setErrorString() et error().
[static] QHostInfo QHostInfo::fromName(const QString &name)
Recherche la ou les adresses IP pour l'hôte donné name. La fonction se bloque pendant la recherche, ce qui signifie que l'exécution du programme est suspendue jusqu'à ce que les résultats de la recherche soient prêts. Renvoie le résultat de la recherche dans un objet QHostInfo.
Si vous transmettez une adresse IP littérale à name au lieu d'un nom d'hôte, QHostInfo recherchera le nom de domaine correspondant à l'IP (c'est-à-dire que QHostInfo effectuera une recherche inversée ). En cas de succès, l'adresse QHostInfo renvoyée contiendra à la fois le nom de domaine résolu et les adresses IP correspondant au nom d'hôte.
Voir aussi lookupHost().
QString QHostInfo::hostName() const
Renvoie le nom de l'hôte dont les adresses IP ont été recherchées.
Voir aussi setHostName() et localHostName().
[static] QString QHostInfo::localDomainName()
Renvoie le domaine DNS de cette machine.
Remarque : les domaines DNS n'ont rien à voir avec les noms de domaine que l'on trouve dans les réseaux Windows.
Voir également hostName().
[static] QString QHostInfo::localHostName()
Renvoie le nom d'hôte de cette machine, s'il est configuré. Notez que les noms d'hôtes ne sont pas garantis comme étant globalement uniques, en particulier s'ils ont été configurés automatiquement.
Cette fonction ne garantit pas que le nom d'hôte renvoyé est un nom de domaine entièrement qualifié (FQDN). Pour cela, utilisez fromName() pour résoudre le nom retourné en un FQDN.
Cette fonction renvoie le même résultat que QSysInfo::machineHostName().
Voir également hostName() et localDomainName().
[static] int QHostInfo::lookupHost(const QString &name, const QObject *receiver, const char *member)
Recherche la ou les adresses IP associées au nom d'hôte name et renvoie un ID pour la recherche. Lorsque le résultat de la recherche est prêt, le slot ou le signal member dans receiver est appelé avec un argument QHostInfo. L'objet QHostInfo peut alors être inspecté pour obtenir les résultats de la recherche.
La consultation est effectuée par un seul appel de fonction, par exemple :
QHostInfo::lookupHost("www.kde.org", this, &MyWidget::lookedUp);
L'implémentation du slot imprime des informations de base sur les adresses renvoyées par la recherche, ou signale une erreur en cas d'échec :
void MyWidget::lookedUp(const QHostInfo &host) { if (host.error() != QHostInfo::NoError) { qDebug() << "Lookup failed:" << host.errorString(); return; } const auto addresses = host.addresses() ; for(const QHostAddress &address: addresses) qDebug() << "Found address:" << address.toString(); }
Si vous transmettez une adresse IP littérale à name au lieu d'un nom d'hôte, QHostInfo recherchera le nom de domaine correspondant à l'IP (c'est-à-dire que QHostInfo effectuera une recherche inversée ). En cas de succès, le résultat QHostInfo contiendra à la fois le nom de domaine résolu et les adresses IP pour le nom d'hôte. Exemple :
QHostInfo::lookupHost("4.2.2.1", this, &MyWidget::lookedUp);
Note : Il n'y a aucune garantie quant à l'ordre dans lequel les signaux seront émis si vous lancez plusieurs requêtes avec lookupHost().
Note : Dans les versions de Qt antérieures à la 6.7, cette fonction prenait receiver comme (non-const) QObject*.
Voir aussi abortHostLookup(), addresses(), error(), et fromName().
[static] template <typename Functor> int QHostInfo::lookupHost(const QString &name, Functor &&functor)
Recherche la ou les adresses IP associées au nom d'hôte name, et renvoie un ID pour la recherche. Lorsque le résultat de la recherche est prêt, functor est appelé avec un argument QHostInfo. L'objet QHostInfo peut alors être inspecté pour obtenir les résultats de la recherche.
La commande functor est exécutée dans le thread qui appelle lookupHost ; ce thread doit avoir une boucle d'événements Qt en cours d'exécution.
Note : Il n'y a aucune garantie sur l'ordre dans lequel les signaux seront émis si vous lancez plusieurs requêtes avec lookupHost().
Il s'agit d'une fonction surchargée.
Voir aussi abortHostLookup(), addresses(), error(), et fromName().
[static] template <typename Functor> int QHostInfo::lookupHost(const QString &name, const QObject *context, Functor functor)
Recherche la ou les adresses IP associées au nom d'hôte name, et renvoie un ID pour la recherche. Lorsque le résultat de la recherche est prêt, functor est appelé avec un argument QHostInfo. L'objet QHostInfo peut alors être inspecté pour obtenir les résultats de la recherche.
Si context est détruit avant la fin de la consultation, functor ne sera pas appelé. La fonction functor sera exécutée dans le fil d'exécution de context. Le fil d'exécution du contexte doit avoir une boucle d'événement Qt XML en cours d'exécution.
Voici une autre signature pour la fonction :
Dans ce cas, lorsque le résultat de la recherche est prêt, le slot ou le signal function dans receiver est appelé avec un argument QHostInfo. L'objet QHostInfo peut alors être inspecté pour obtenir les résultats de la recherche.
Remarque : il n'y a aucune garantie quant à l'ordre dans lequel les signaux seront émis si vous lancez plusieurs requêtes avec lookupHost().
Il s'agit d'une fonction surchargée.
Voir aussi abortHostLookup(), addresses(), error(), et fromName().
int QHostInfo::lookupId() const
Renvoie l'identifiant de cette recherche.
Voir aussi setLookupId(), abortHostLookup() et hostName().
void QHostInfo::setAddresses(const QList<QHostAddress> &addresses)
Définit la liste des adresses de ce QHostInfo à addresses.
Voir aussi addresses().
void QHostInfo::setError(QHostInfo::HostInfoError error)
Définit le type d'erreur de ce QHostInfo à error.
Voir aussi error() et errorString().
void QHostInfo::setErrorString(const QString &str)
Définit la description lisible par l'homme de l'erreur qui s'est produite à l'adresse str si la consultation a échoué.
Voir également errorString() et setError().
void QHostInfo::setHostName(const QString &hostName)
Définit le nom d'hôte de ce QHostInfo à hostName.
Voir aussi hostName().
void QHostInfo::setLookupId(int id)
Fixe l'ID de cette recherche à id.
Voir aussi lookupId() et lookupHost().
[noexcept] void QHostInfo::swap(QHostInfo &other)
Remplace ce host-info par other. Cette opération est très rapide et n'échoue jamais.
[noexcept] QHostInfo &QHostInfo::operator=(QHostInfo &&other)
Move-assigne other à cette instance QHostInfo.
Note : L'objet déplacé other est placé dans un état partiellement formé, dans lequel les seules opérations valides sont la destruction et l'attribution d'une nouvelle valeur.
QHostInfo &QHostInfo::operator=(const QHostInfo &other)
Affecte les données de l'objet other à l'objet host info et renvoie une référence à cet objet.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.