Spec-Zone.ru › Qt 5.12

Класс QHostInfo

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

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

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

Типы публичного доступа

перечисление HostInfoError { НетОшибки, ХостНеНайден, НеизвестнаяОшибка }

Функции публичного доступа

QHostInfo(int id = -1)
QHostInfo(const 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=(const QHostInfo &other)
QHostInfo & operator=(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 поддерживает имена доменных имен с использованием стандартов IDNA и Punycode.

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

QHostInfo использует механизмы, предоставляемые операционной системой, для выполнения поиска. Согласно RFC 6724 нет гарантии, что будут возвращены все IP-адреса, зарегистрированные для домена или хоста.

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

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

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

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

перечисление 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()

Уничтожает объект информации о хосте.

[static] void QHostInfo::abortHostLookup(int id)

Прерывает поиск хоста с 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().

QHostInfo::HostInfoError QHostInfo::error() const

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

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

QString QHostInfo::errorString() const

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

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

[static] QHostInfo QHostInfo::fromName(const QString &name)

Ищет IP-адрес(ы) для данного хоста name. Функция блокируется во время поиска, что означает приостановку выполнения программы до готовности результатов поиска. Возвращает результат поиска в объекте 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. Поток context должен иметь работающий цикл событий Qt.

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

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

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

int QHostInfo::lookupId() const

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

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

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

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

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

void QHostInfo::setError(QHostInfo::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.

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

void QHostInfo::swap(QHostInfo &other)

Меняет местами информацию о хосте other с этой информацией о хосте. Эта операция очень быстрая и никогда не терпит неудачу.

Эта функция была добавлена в Qt 5.10.

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

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

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

Перемещающее присваивание other этому экземпляру QHostInfo.

Примечание: Объект other, из которого производилось перемещение, находится в частично сформированном состоянии, в котором единственные допустимые операции — уничтожение и присваивание нового значения.

Эта функция была добавлена в Qt 5.10.

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

Spec-Zone.ru

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