Spec-Zone.ru › Qt 6.1

Класс QDnsLookup

Класс QDnsLookup представляет поиск DNS. Подробнее...

Заголовок: #include <QDnsLookup>
CMake: find_package(Qt6 COMPONENTS Network REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network
С момента: Qt 5.0
Наследуется от: QObject
  • Список всех членов, включая наследуемые

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

перечисление Ошибка { НетОшибки, ОшибкаРезолвера, ОшибкаПрерваннойОперации, ОшибкаНеверногоЗапроса, ОшибкаНеверногоОтвета, …, ОшибкаНеНайдено }
перечисление Тип { A, AAAA, ЛЮБОЙ, CNAME, MX, …, TXT }

Свойства

  • ошибка : const Ошибка
  • ошибкаСтрока : const QString
  • имя : QString
  • серверИмен : QHostAddress
  • тип : Тип

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

QDnsLookup(QDnsLookup::Тип тип, const QString &имя, const QHostAddress &серверИмен, QObject *родитель = nullptr)
QDnsLookup(QDnsLookup::Тип тип, const QString &имя, QObject *родитель = nullptr)
QDnsLookup(QObject *родитель = nullptr)
виртуальный ~QDnsLookup()
QList<QDnsDomainNameRecord> canonicalNameRecords() const
QDnsLookup::Ошибка ошибка() const
QString ошибкаСтрока() const
QList<QDnsHostAddressRecord> hostAddressRecords() const
bool isFinished() const
QList<QDnsMailExchangeRecord> mailExchangeRecords() const
QString имя() const
QList<QDnsDomainNameRecord> nameServerRecords() const
QHostAddress серверИмен() const
QList<QDnsDomainNameRecord> pointerRecords() const
QList<QDnsServiceRecord> serviceRecords() const
void setName(const QString &имя)
void setNameserver(const QHostAddress &серверИмен)
void setType(QDnsLookup::Тип)
QList<QDnsTextRecord> textRecords() const
QDnsLookup::Тип тип() const

Открытые слоты

void прервать()
void поиск()

Сигналы

void закончен()
void изменилосьИмя(const QString &имя)
void изменилсяСерверИмен(const QHostAddress &серверИмен)
void изменилсяТип(QDnsLookup::Тип тип)

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

QDnsLookup использует механизмы операционной системы для выполнения запросов DNS. Для выполнения запроса необходимо указать имя имя и тип тип, а затем вызвать слот lookup(). Сигнал finished() будет выпущен по завершении.

Например, вы можете определить, к каким серверам должен подключаться клиент чата XMPP для данного домена:

void MyObject::lookupServers()
{
    // Create a DNS lookup.
    dns = new QDnsLookup(this);
    connect(dns, SIGNAL(finished()),
            this, SLOT(handleServers()));

    // Find the XMPP servers for gmail.com
    dns->setType(QDnsLookup::SRV);
    dns->setName("_xmpp-client._tcp.gmail.com");
    dns->lookup();
}

После завершения запроса вы можете обработать результаты:

void MyObject::handleServers()
{
    // Check the lookup succeeded.
    if (dns->error() != QDnsLookup::NoError) {
        qWarning("DNS lookup failed");
        dns->deleteLater();
        return;
    }

    // Handle the results.
    const auto records = dns->serviceRecords();
    for (const QDnsServiceRecord &record : records) {
        ...
    }
    dns->deleteLater();
}

Примечание: Если вам просто нужно найти IP-адрес(ы), связанный(е) с именем хоста, или имя хоста, связанный(й) с IP-адресом, используйте QHostInfo.

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

enum QDnsLookup::Error

Указывает все возможные ошибки, возникшие во время обработки запроса DNS.

Константа Значение Описание
QDnsLookup::NoError 0 нет ошибок.
QDnsLookup::ResolverError 1 возникла ошибка при инициализации DNS-разрешителя системы.
QDnsLookup::OperationCancelledError 2 запрос был прерван с помощью метода abort().
QDnsLookup::InvalidRequestError 3 запрашиваемый запрос DNS был некорректен.
QDnsLookup::InvalidReplyError 4 ответ, возвращённый сервером, был некорректен.
QDnsLookup::ServerFailureError 5 сервер столкнулся с внутренней ошибкой при обработке запроса (SERVFAIL).
QDnsLookup::ServerRefusedError 6 сервер отказался обработать запрос по соображениям безопасности или политики (REFUSED).
QDnsLookup::NotFoundError 7 запрашиваемого доменного имени не существует (NXDOMAIN).

enum QDnsLookup::Type

Указывает тип запроса DNS, который был выполнен.

Константа Значение Описание
QDnsLookup::A 1 Записи адресов IPv4.
QDnsLookup::AAAA 28 Записи адресов IPv6.
QDnsLookup::ANY 255 Любые записи.
QDnsLookup::CNAME 5 Записи канонических имён.
QDnsLookup::MX 15 Записи MX (Mail Exchange).
QDnsLookup::NS 2 Записи DNS серверов.
QDnsLookup::PTR 12 Записи указателей (PTR).
QDnsLookup::SRV 33 Записи служб (SRV).
QDnsLookup::TXT 16 Текстовые записи.

Документация свойств

[read-only] error : const Error

Это свойство содержит тип ошибки, произошедшей при неудачном поиске в DNS, или NoError.

Функции доступа:

QDnsLookup::Error error() const

Сигнал оповещения:

void finished()

[read-only] errorString : const QString

Это свойство содержит удобочитаемое описание ошибки, произошедшей при неудачном поиске в DNS.

Функции доступа:

QString errorString() const

Сигнал оповещения:

void finished()

[bindable] name : QString

Примечание: Это свойство поддерживает привязку QProperty.

Это свойство содержит имя для поиска.

Примечание: Имя будет закодировано с помощью IDNA, что делает его непригодным для запроса записей SRV, совместимых со спецификацией DNS-SD.

[bindable] nameserver : QHostAddress

Примечание: Это свойство поддерживает привязку QProperty.

Это свойство содержит имя сервера имен для поиска в DNS.

[bindable] type : Type

Примечание: Это свойство поддерживает привязку QProperty.

Это свойство содержит тип поиска в DNS.

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

[since 5.4] QDnsLookup::QDnsLookup(QDnsLookup::Type type, const QString &name, const QHostAddress &nameserver, QObject *parent = nullptr)

Создаёт объект QDnsLookup для заданного типа type, имени name и сервера имен nameserver и устанавливает parent как родительский объект.

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

QDnsLookup::QDnsLookup(QDnsLookup::Type type, const QString &name, QObject *parent = nullptr)

Создаёт объект QDnsLookup для заданного типа type и имени name и устанавливает parent как родительский объект.

QDnsLookup::QDnsLookup(QObject *parent = nullptr)

Создаёт объект QDnsLookup и устанавливает parent как родительский объект.

Свойство type будет по умолчанию равно QDnsLookup::A.

[slot] void QDnsLookup::abort()

Прерывает операцию поиска в DNS.

Если поиск уже завершен, ничего не делает.

[signal] void QDnsLookup::finished()

Этот сигнал испускается, когда обработка ответа завершена.

Примечание: Сигнал оповещения для свойства error. Сигнал оповещения для свойства errorString.

[slot] void QDnsLookup::lookup()

Выполняет поиск в DNS.

Сигнал finished() испускается по завершении.

[signal] void QDnsLookup::nameChanged(const QString &name)

Этот сигнал испускается, когда имя поиска name изменяется. name — новое имя для поиска.

Примечание: Сигнал оповещения для свойства name.

[signal] void QDnsLookup::typeChanged(QDnsLookup::Type type)

Этот сигнал испускается, когда тип поиска type изменяется. type — новый тип поиска.

Примечание: Сигнал оповещения для свойства type.

[virtual] QDnsLookup::~QDnsLookup()

Удаляет объект QDnsLookup.

Безопасно удалить объект QDnsLookup, даже если он не завершён; вы просто никогда не получите его результаты.

QList<QDnsDomainNameRecord> QDnsLookup::canonicalNameRecords() const

Возвращает список записей канонических имён, связанных с этим поиском.

QList<QDnsHostAddressRecord> QDnsLookup::hostAddressRecords() const

Возвращает список записей адресов хостов, связанных с этим поиском.

bool QDnsLookup::isFinished() const

Возвращает, завершён ли запрос или был прерван.

QList<QDnsMailExchangeRecord> QDnsLookup::mailExchangeRecords() const

Возвращает список записей MX (Mail Exchange), связанных с этим поиском.

Записи отсортированы в соответствии с RFC 5321, поэтому при подключении к серверам следует использовать их в указанном порядке.

QList<QDnsDomainNameRecord> QDnsLookup::nameServerRecords() const

Возвращает список записей DNS серверов, связанных с этим поиском.

QList<QDnsDomainNameRecord> QDnsLookup::pointerRecords() const

Возвращает список записей указателей (PTR), связанных с этим поиском.

QList<QDnsServiceRecord> QDnsLookup::serviceRecords() const

Возвращает список записей служб (SRV), связанных с этим поиском.

Записи отсортированы в соответствии с RFC 2782, поэтому при подключении к серверам следует использовать их в указанном порядке.

QList<QDnsTextRecord> QDnsLookup::textRecords() const

Возвращает список текстовых записей, связанных с этим поиском.

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

Spec-Zone.ru

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