QHostInfo Class
Die Klasse QHostInfo bietet statische Funktionen für die Suche nach Hostnamen. Mehr...
Kopfzeile: | #include <QHostInfo> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake: | QT += network |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QHostInfo ist Teil der Network Programming API.
Hinweis: Alle Funktionen in dieser Klasse sind reentrant.
Öffentliche Typen
enum | HostInfoError { NoError, HostNotFound, UnknownError } |
Öffentliche Funktionen
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) |
Statische öffentliche Mitglieder
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) |
Detaillierte Beschreibung
QHostInfo findet die IP-Adresse(n), die mit einem Hostnamen verbunden sind, oder den Hostnamen, der mit einer IP-Adresse verbunden ist. Die Klasse bietet zwei statische Komfortfunktionen: eine, die asynchron arbeitet und ein Signal ausgibt, sobald der Host gefunden ist, und eine, die blockiert und ein QHostInfo-Objekt zurückgibt.
Um die IP-Adressen eines Hosts asynchron nachzuschlagen, rufen Sie lookupHost() auf, die den Hostnamen oder die IP-Adresse, ein Empfängerobjekt und eine Slot-Signatur als Argumente annimmt und eine ID zurückgibt. Sie können die Abfrage abbrechen, indem Sie abortHostLookup() mit der Abfrage-ID aufrufen.
Beispiel:
// 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);
Der Slot wird aufgerufen, wenn die Ergebnisse fertig sind. Die Ergebnisse werden in einem QHostInfo-Objekt gespeichert. Rufen Sie addresses() auf, um die Liste der IP-Adressen für den Host zu erhalten, und hostName(), um den Hostnamen zu erhalten, der nachgeschlagen wurde.
Wenn die Suche fehlgeschlagen ist, gibt error() den Fehlertyp zurück, der aufgetreten ist. errorString() gibt eine menschenlesbare Beschreibung des Suchfehlers.
Wenn Sie eine blockierende Abfrage wünschen, verwenden Sie die Funktion QHostInfo::fromName():
QHostInfo unterstützt Internationalized Domain Names (IDNs) durch die Standards IDNA und Punycode.
Um den Namen des lokalen Hosts abzurufen, verwenden Sie die statische Funktion QHostInfo::localHostName().
QHostInfo verwendet die vom Betriebssystem bereitgestellten Mechanismen, um die Suche durchzuführen. Gemäß RFC 6724 gibt es keine Garantie, dass alle IP-Adressen, die für eine Domain oder einen Host registriert sind, zurückgegeben werden.
Hinweis: Seit Qt 4.6.1 verwendet QHostInfo mehrere Threads für die DNS-Suche anstelle eines dedizierten DNS-Threads. Dies verbessert die Leistung, ändert aber auch die Reihenfolge der Signalausgabe bei der Verwendung von lookupHost() im Vergleich zu früheren Versionen von Qt.
Hinweis: Seit Qt 4.6.3 verwendet QHostInfo einen kleinen internen 60-Sekunden-DNS-Cache zur Leistungssteigerung.
Siehe auch QAbstractSocket, RFC 3492, und RFC 6724.
Dokumentation zum Member-Typ
enum QHostInfo::HostInfoError
Diese Aufzählung beschreibt die verschiedenen Fehler, die beim Versuch, einen Hostnamen aufzulösen, auftreten können.
Konstante | Wert | Beschreibung |
---|---|---|
QHostInfo::NoError | 0 | Die Suche war erfolgreich. |
QHostInfo::HostNotFound | 1 | Es wurden keine IP-Adressen für den Host gefunden. |
QHostInfo::UnknownError | 2 | Ein unbekannter Fehler ist aufgetreten. |
Dokumentation der Mitgliedsfunktionen
[explicit]
QHostInfo::QHostInfo(int id = -1)
Konstruiert ein leeres Host-Info-Objekt mit der Lookup-ID id.
Siehe auch lookupId().
QHostInfo::QHostInfo(const QHostInfo &other)
Konstruiert eine Kopie von other.
[noexcept]
QHostInfo::QHostInfo(QHostInfo &&other)
Move-konstruiert ein neues QHostInfo aus other.
Hinweis: Das verschobene Objekt other wird in einen teilweise gebildeten Zustand versetzt, in dem die einzigen gültigen Operationen die Zerstörung und die Zuweisung eines neuen Wertes sind.
[noexcept]
QHostInfo::~QHostInfo()
Zerstört das Host-Info-Objekt.
[static]
void QHostInfo::abortHostLookup(int id)
Bricht die Hostsuche mit der ID id ab, die von lookupHost() zurückgegeben wird.
Siehe auch lookupHost() und lookupId().
QList<QHostAddress> QHostInfo::addresses() const
Gibt die Liste der IP-Adressen zurück, die mit hostName() verbunden sind. Diese Liste kann leer sein.
Beispiel:
QHostInfo info; ... if (!info.addresses().isEmpty()) { QHostAddress address = info.addresses().first(); // use the first IP address }
Siehe auch setAddresses(), hostName(), und error().
QHostInfo::HostInfoError QHostInfo::error() const
Gibt die Art des Fehlers zurück, der aufgetreten ist, wenn die Suche nach dem Hostnamen fehlgeschlagen ist; andernfalls wird NoError zurückgegeben.
Siehe auch setError() und errorString().
QString QHostInfo::errorString() const
Wenn die Suche fehlgeschlagen ist, gibt diese Funktion eine menschenlesbare Beschreibung des Fehlers zurück; andernfalls wird "Unbekannter Fehler" zurückgegeben.
Siehe auch setErrorString() und error().
[static]
QHostInfo QHostInfo::fromName(const QString &name)
Sucht die IP-Adresse(n) für den angegebenen Host name. Die Funktion blockiert während der Suche, was bedeutet, dass die Ausführung des Programms unterbrochen wird, bis die Ergebnisse der Suche vorliegen. Gibt das Ergebnis der Suche in einem QHostInfo Objekt zurück.
Wenn Sie name eine IP-Adresse anstelle eines Hostnamens übergeben, sucht QHostInfo nach dem Domänennamen für die IP (d. h. QHostInfo führt einen Reverse Lookup durch). Bei Erfolg enthält die zurückgegebene QHostInfo sowohl den aufgelösten Domänennamen als auch die IP-Adressen für den Hostnamen.
Siehe auch lookupHost().
QString QHostInfo::hostName() const
Gibt den Namen des Hosts zurück, dessen IP-Adressen nachgeschlagen wurden.
Siehe auch setHostName() und localHostName().
[static]
QString QHostInfo::localDomainName()
Gibt die DNS-Domäne dieses Rechners zurück.
Hinweis: DNS-Domänen sind nicht mit den Domänennamen in Windows-Netzwerken verwandt.
Siehe auch hostName().
[static]
QString QHostInfo::localHostName()
Gibt den Hostnamen dieses Rechners zurück, sofern ein solcher konfiguriert ist. Beachten Sie, dass Hostnamen nicht garantiert global eindeutig sind, insbesondere wenn sie automatisch konfiguriert wurden.
Diese Funktion garantiert nicht, dass der zurückgegebene Hostname ein Fully Qualified Domain Name (FQDN) ist. Verwenden Sie dazu fromName(), um den zurückgegebenen Namen in einen FQDN aufzulösen.
Diese Funktion liefert das gleiche Ergebnis wie QSysInfo::machineHostName().
Siehe auch hostName() und localDomainName().
[static]
int QHostInfo::lookupHost(const QString &name, const QObject *receiver, const char *member)
Sucht die IP-Adresse(n), die dem Hostnamen name zugeordnet sind, und gibt eine ID für die Suche zurück. Wenn das Ergebnis der Suche fertig ist, wird der Slot oder das Signal member in receiver mit einem QHostInfo Argument aufgerufen. Das Objekt QHostInfo kann dann inspiziert werden, um die Ergebnisse der Suche zu erhalten.
Die Suche wird durch einen einzigen Funktionsaufruf durchgeführt, zum Beispiel:
QHostInfo::lookupHost("www.kde.org", this, &MyWidget::lookedUp);
Die Implementierung des Slots gibt grundlegende Informationen über die von der Suche zurückgegebenen Adressen aus oder meldet einen Fehler, wenn sie fehlgeschlagen ist:
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: Adressen) qDebug() << "Found address:" << address.toString(); }
Wenn Sie name eine IP-Adresse anstelle eines Hostnamens übergeben, sucht QHostInfo nach dem Domänennamen für die IP (d. h. QHostInfo führt eine Rückwärtssuche durch). Bei Erfolg enthält das Ergebnis QHostInfo sowohl den aufgelösten Domänennamen als auch die IP-Adressen für den Hostnamen. Beispiel:
QHostInfo::lookupHost("4.2.2.1", this, &MyWidget::lookedUp);
Hinweis: Es gibt keine Garantie für die Reihenfolge, in der die Signale ausgesendet werden, wenn Sie mehrere Anfragen mit lookupHost() starten.
Hinweis: In Qt-Versionen vor 6.7 nahm diese Funktion receiver als (non-const) QObject*
.
Siehe auch abortHostLookup(), addresses(), error(), und fromName().
[static]
template <typename Functor> int QHostInfo::lookupHost(const QString &name, Functor &&functor)
Dies ist eine überladene Funktion.
Sucht die IP-Adresse(n), die dem Hostnamen name zugeordnet sind, und gibt eine ID für die Suche zurück. Wenn das Ergebnis der Suche fertig ist, wird functor mit einem QHostInfo Argument aufgerufen. Das Objekt QHostInfo kann dann inspiziert werden, um die Ergebnisse der Suche zu erhalten.
Die functor wird in dem Thread ausgeführt, der den Aufruf von lookupHost vornimmt; dieser Thread muss eine laufende Qt-Ereignisschleife haben.
Hinweis: Es gibt keine Garantie für die Reihenfolge, in der die Signale ausgesendet werden, wenn Sie mehrere Anfragen mit lookupHost() starten.
Siehe auch abortHostLookup(), addresses(), error(), und fromName().
[static]
template <typename Functor> int QHostInfo::lookupHost(const QString &name, const QObject *context, Functor functor)
Dies ist eine überladene Funktion.
Sucht die IP-Adresse(n), die dem Hostnamen name zugeordnet sind, und gibt eine ID für die Suche zurück. Wenn das Ergebnis der Suche fertig ist, wird functor mit einem QHostInfo Argument aufgerufen. Das Objekt QHostInfo kann dann inspiziert werden, um die Ergebnisse der Suche zu erhalten.
Wenn context zerstört wird, bevor die Suche abgeschlossen ist, wird functor nicht aufgerufen. Die functor wird im Thread von context ausgeführt. Der Thread des Kontexts muss eine laufende Qt-Ereignisschleife haben.
Hier ist eine alternative Signatur für die Funktion:
In diesem Fall wird, wenn das Ergebnis der Suche fertig ist, der Slot oder das Signal function
in receiver
mit einem QHostInfo Argument aufgerufen. Das Objekt QHostInfo kann dann inspiziert werden, um die Ergebnisse der Suche zu erhalten.
Hinweis: Es gibt keine Garantie für die Reihenfolge, in der die Signale ausgesendet werden, wenn Sie mehrere Anfragen mit lookupHost() starten.
Siehe auch abortHostLookup(), addresses(), error(), und fromName().
int QHostInfo::lookupId() const
Gibt die ID dieser Abfrage zurück.
Siehe auch setLookupId(), abortHostLookup(), und hostName().
void QHostInfo::setAddresses(const QList<QHostAddress> &addresses)
Setzt die Liste der Adressen in diesem QHostInfo auf addresses.
Siehe auch addresses().
void QHostInfo::setError(QHostInfo::HostInfoError error)
Setzt den Fehlertyp dieses QHostInfo auf error.
Siehe auch error() und errorString().
void QHostInfo::setErrorString(const QString &str)
Setzt die menschenlesbare Beschreibung des Fehlers, der aufgetreten ist, auf str, wenn die Suche fehlgeschlagen ist.
Siehe auch errorString() und setError().
void QHostInfo::setHostName(const QString &hostName)
Setzt den Hostnamen dieses QHostInfo auf hostName.
Siehe auch hostName().
void QHostInfo::setLookupId(int id)
Setzt die ID dieser Abfrage auf id.
Siehe auch lookupId() und lookupHost().
[noexcept]
void QHostInfo::swap(QHostInfo &other)
Tauscht diese Host-Information mit other aus. Dieser Vorgang ist sehr schnell und schlägt nie fehl.
[noexcept]
QHostInfo &QHostInfo::operator=(QHostInfo &&other)
Verschieben - weist other dieser QHostInfo Instanz zu.
Hinweis: Das verschobene Objekt other wird in einen teilweise gebildeten Zustand versetzt, in dem die einzigen gültigen Operationen Zerstörung und Zuweisung eines neuen Wertes sind.
QHostInfo &QHostInfo::operator=(const QHostInfo &other)
Weist diesem Host-Info-Objekt die Daten des other -Objekts zu und gibt einen Verweis darauf zurück.
© 2025 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.