Spec-Zone.ru › Qt 5.9

Класс QHostInfo

Класс QHostInfo предоставляет статические функции для поиска имени хоста. Подробнее...

Заголовок: #include <QHostInfo>
qmake: QT += network
  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются повторно-входными.

Открытые типы

перечисление HostInfoError { NoError, HostNotFound, UnknownError }

Открытые функции

QHostInfo(int id = -1)
QHostInfo(const QHostInfo &other)
~QHostInfo()
QList<QHostAddress> addresses() const
HostInfoError error() const
QString errorString() const
QString hostName() const
int lookupId() const
void setAddresses(const QList<QHostAddress> &addresses)
void setError(HostInfoError error)
void setErrorString(const QString &str)
void setHostName(const QString &hostName)
void setLookupId(int id)
QHostInfo & operator=(const QHostInfo &other)

Статические открытые члены

void abortHostLookup(int id)
QHostInfo fromName(const QString &name)
QString localDomainName()
QString localHostName()
int lookupHost(const QString &name, QObject *receiver, const char *member)
int lookupHost(const QString &name, const QObject *receiver, PointerToMemberFunction function)
int lookupHost(const QString &name, Functor functor)
int lookupHost(const QString &name, const QObject *context, Functor functor)

Подробное описание

Класс QHostInfo предоставляет статические функции для поиска имени хоста.

QHostInfo использует механизмы поиска, предоставляемые операционной системой, для нахождения IP-адреса(ов), связанных с именем хоста, или имени хоста, связанного с IP-адресом. Класс предоставляет две удобные статические функции: одна работает асинхронно и генерирует сигнал после нахождения хоста, а другая блокирует выполнение и возвращает объект QHostInfo.

Чтобы асинхронно найти IP-адреса хоста, вызовите lookupHost(), которая принимает имя хоста или IP-адрес, объект получателя и сигнатуру слота в качестве аргументов и возвращает идентификатор. Вы можете прервать поиск, вызвав abortHostLookup() с идентификатором поиска.

Пример:

// To find the IP address of qt-project.org
QHostInfo::lookupHost("qt-project.org",
                      this, SLOT(printResults(QHostInfo)));

// To find the host name for 4.2.2.1
QHostInfo::lookupHost("4.2.2.1",
                      this, SLOT(printResults(QHostInfo)));

Слоту вызывается, когда результаты готовы. Результаты хранятся в объекте QHostInfo. Вызовите addresses(), чтобы получить список IP-адресов для хоста, и hostName(), чтобы получить имя хоста, который был найден.

Если поиск не удался, error() возвращает тип ошибки, которая произошла. errorString() предоставляет удобочитаемое описание ошибки поиска.

Если вам нужен блокирующий поиск, используйте функцию QHostInfo::fromName():

QHostInfo info = QHostInfo::fromName("qt-project.org");

QHostInfo поддерживает имена доменных имён с национальными символами (IDN) через стандарты IDNA и Punycode.

Чтобы получить имя локального хоста, используйте статическую функцию QHostInfo::localHostName().

Примечание: Начиная с Qt 4.6.1 QHostInfo использует несколько потоков для поиска DNS вместо одного выделенного потока DNS. Это улучшает производительность, но также изменяет порядок вывода сигналов при использовании lookupHost() по сравнению с предыдущими версиями Qt.

Примечание: Начиная с Qt 4.6.3 QHostInfo использует небольшой внутренний кэш DNS на 60 секунд для повышения производительности.

См. также QAbstractSocket и RFC 3492.

Документация по типам членов

перечисление QHostInfo::HostInfoError

Это перечисление описывает различные ошибки, которые могут возникнуть при попытке разрешить имя хоста.

Константа Значение Описание
QHostInfo::NoError 0 Поиск был успешным.
QHostInfo::HostNotFound 1 Для хоста не были найдены IP-адреса.
QHostInfo::UnknownError 2 Произошла неизвестная ошибка.

См. также error() и setError().

Документация по функциям-членам

QHostInfo::QHostInfo(int id = -1)

Создаёт пустой объект информации о хосте с идентификатором поиска id.

См. также lookupId().

QHostInfo::QHostInfo(const QHostInfo &other)

Создаёт копию other.

QHostInfo::~QHostInfo()

Удаляет объект информации о хосте.

void QHostInfo::abortHostLookup(int id)

Прерывает поиск хоста с идентификатором id, как возвращённым функцией lookupHost().

См. также lookupHost() и lookupId().

QList<QHostAddress> QHostInfo::addresses() const

Возвращает список IP-адресов, связанных с hostName(). Этот список может быть пустым.

Пример:

QHostInfo info;
...
if (!info.addresses().isEmpty()) {
    QHostAddress address = info.addresses().first();
    // use the first IP address
}

См. также setAddresses(), hostName() и error().

HostInfoError QHostInfo::error() const

Возвращает тип ошибки, произошедшей, если поиск имени хоста завершился неудачно; иначе возвращает NoError.

См. также setError() и errorString().

QString QHostInfo::errorString() const

Если поиск не удался, эта функция возвращает удобочитаемое описание ошибки; в противном случае возвращается "Неизвестная ошибка".

См. также setErrorString() и error().

QHostInfo QHostInfo::fromName(const QString &name)

Ищет IP-адрес(ы) для данного хост-имени. Функция блокируется во время поиска, что означает приостановку выполнения программы до готовности результатов поиска. Возвращает результат поиска в объекте QHostInfo.

Если вы передаёте литеральный IP-адрес в name вместо имени хоста, QHostInfo будет искать доменное имя для IP (т. е., QHostInfo выполнит поиск по обратному порядку). При успехе возвращаемый QHostInfo будет содержать как разрешённое доменное имя, так и IP-адреса для имени хоста.

См. также lookupHost().

QString QHostInfo::hostName() const

Возвращает имя хоста, чьи IP-адреса были найдены.

См. также setHostName() и localHostName().

[static] QString QHostInfo::localDomainName()

Возвращает DNS-домен этого компьютера.

Примечание: DNS-домены не связаны с доменными именами, найденными в сетях Windows.

См. также hostName().

[static] QString QHostInfo::localHostName()

Возвращает имя хоста этого компьютера, если оно настроено. Обратите внимание, что имена хостов не гарантируют глобальной уникальности, особенно если они были настроены автоматически.

Эта функция не гарантирует, что возвращённое имя хоста является полным доменным именем (FQDN). Для этого используйте fromName() для разрешения возвращённого имени в FQDN.

Эта функция возвращает то же, что и QSysInfo::machineHostName().

См. также hostName() и localDomainName().

[static] int QHostInfo::lookupHost(const QString &name, QObject *receiver, const char *member)

Ищет IP-адрес(ы), связанные с именем хоста name, и возвращает идентификатор для поиска. При готовности результата поиска вызывается слот или сигнал member в receiver с аргументом QHostInfo. Объект QHostInfo затем может быть проверен для получения результатов поиска.

Поиск выполняется одним вызовом функции, например:

QHostInfo::lookupHost("www.kde.org",
                      this, SLOT(lookedUp(QHostInfo)));

Реализация слота выводит основную информацию об адресах, возвращённых поиском, или сообщает об ошибке, если поиск не удался:

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();
}

Если вы передаёте литеральный IP-адрес в name вместо имени хоста, QHostInfo будет искать доменное имя для IP (т. е., QHostInfo выполнит обратный поиск). При успехе результирующий QHostInfo будет содержать как разрешённое доменное имя, так и IP-адреса для имени хоста. Пример:

QHostInfo::lookupHost("4.2.2.1",
                      this, SLOT(lookedUp(QHostInfo)));

Примечание: Нет гарантии порядка отправки сигналов, если вы запускаете несколько запросов с помощью lookupHost().

См. также abortHostLookup(), addresses(), error() и fromName().

[static] int QHostInfo::lookupHost(const QString &name, const QObject *receiver, PointerToMemberFunction function)

Это перегруженная функция.

Ищет IP-адрес(ы), связанные с именем хоста name, и возвращает идентификатор для поиска. При готовности результата поиска вызывается слот или сигнал function в receiver с аргументом QHostInfo. Объект QHostInfo затем может быть проверен для получения результатов поиска.

Примечание: Нет гарантии порядка отправки сигналов, если вы запускаете несколько запросов с помощью lookupHost().

Функция была добавлена в Qt 5.9.

См. также abortHostLookup(), addresses(), error() и fromName().

[static] int QHostInfo::lookupHost(const QString &name, Functor functor)

Это перегруженная функция.

Ищет IP-адрес(ы), связанные с именем хоста name, и возвращает идентификатор для поиска. При готовности результата поиска вызывается functor с аргументом QHostInfo. Объект QHostInfo затем может быть проверен для получения результатов поиска.

Примечание: Нет гарантии порядка отправки сигналов, если вы запускаете несколько запросов с помощью lookupHost().

Функция была добавлена в Qt 5.9.

См. также abortHostLookup(), addresses(), error() и fromName().

[static] int QHostInfo::lookupHost(const QString &name, const QObject *context, Functor functor)

Это перегруженная функция.

Ищет IP-адрес(ы), связанные с именем хоста name, и возвращает идентификатор для поиска. При готовности результата поиска вызывается functor с аргументом QHostInfo. Объект QHostInfo затем может быть проверен для получения результатов поиска.

Если context уничтожен до завершения поиска, functor не будет вызван. Functor будет выполнен в потоке context. Поток контекста должен иметь работающий цикл событий Qt.

Примечание: Нет гарантии порядка отправки сигналов, если вы запускаете несколько запросов с помощью lookupHost().

Функция была добавлена в Qt 5.9.

См. также abortHostLookup(), addresses(), error() и fromName().

int QHostInfo::lookupId() const

Возвращает ID этого поиска.

См. также setLookupId(), abortHostLookup() и hostName().

void QHostInfo::setAddresses(const QList<QHostAddress> &addresses)

Устанавливает список адресов в этом объекте QHostInfo в addresses.

См. также addresses().

void QHostInfo::setError(HostInfoError error)

Устанавливает тип ошибки этого объекта QHostInfo в error.

См. также error() и errorString().

void QHostInfo::setErrorString(const QString &str)

Устанавливает удобочитаемое описание ошибки, произошедшей при поиске, в str, если поиск не удался.

См. также errorString() и setError().

void QHostInfo::setHostName(const QString &hostName)

Устанавливает имя хоста этого объекта QHostInfo в hostName.

См. также hostName().

void QHostInfo::setLookupId(int id)

Устанавливает ID этого поиска в id.

См. также lookupId() и lookupHost().

QHostInfo &QHostInfo::operator=(const QHostInfo &other)

Присваивает данные объекта other объекту информации о хосте и возвращает ссылку на него.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qhostinfo.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API