Класс QDnsLookup
Класс QDnsLookup представляет собой запрос DNS. Подробнее...
| Заголовок: | #include <QDnsLookup> |
| qmake: | QT += network |
| С тех пор: | Qt 5.0 |
| Наследует: | QObject |
Открытые типы
| Перечисление | Ошибка { НетОшибок, ОшибкаРезолвера, ОшибкаОтменыОперации, ОшибкаНеверногоЗапроса, ..., ОшибкаНеНайдено } |
| Перечисление | Тип { A, AAAA, ANY, CNAME, ..., TXT } |
Свойства
|
|
- 1 свойство унаследовано от QObject
Открытые функции
| QDnsLookup(QObject *родитель = nullptr) | |
| QDnsLookup(QDnsLookup::Тип тип, const QString &имя, QObject *родитель = nullptr) | |
| QDnsLookup(QDnsLookup::Тип тип, const QString &имя, const QHostAddress &имяСервера, QObject *родитель = nullptr) | |
| virtual | ~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 |
- 34 открытые функции унаследованы от QObject
Открытые слоты
| void | прервать() |
| void | lookup() |
- 1 открытый слот унаследован от QObject
Сигналы
| void | завершено() |
| void | имяИзменено(const QString &имя) |
| void | имяСервераИзменено(const QHostAddress &имяСервера) |
| void | типИзменен(QDnsLookup::Тип тип) |
- 2 сигнала, унаследованные от QObject
Дополнительные унаследованные члены
- 1 общедоступная переменная, унаследованная от QObject
- 10 статических общедоступных членов, унаследованных от QObject
- 9 защищенных функций, унаследованных от QObject
- 2 защищенных переменных, унаследованных от QObject
Подробное описание
Класс QDnsLookup представляет поиск DNS.
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 вместо этого.
Документация по типам членов
перечисление 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). |
перечисление QDnsLookup::Type
Указывает тип поиска DNS, который был выполнен.
| Константа | Значение | Описание |
|---|---|---|
QDnsLookup::A |
1 |
Записи адресов IPv4. |
QDnsLookup::AAAA |
28 |
Записи адресов IPv6. |
QDnsLookup::ANY |
255 |
Любые записи. |
QDnsLookup::CNAME |
5 |
Записи канонических имён. |
QDnsLookup::MX |
15 |
Записи обмена почтой. |
QDnsLookup::NS |
2 |
Записи серверов имён. |
QDnsLookup::PTR |
12 |
Указательные записи. |
QDnsLookup::SRV |
33 |
Записи служб. |
QDnsLookup::TXT |
16 |
Текстовые записи. |
Документация по свойствам
error : const Error
Это свойство содержит тип ошибки, произошедшей при провале поиска DNS, или NoError.
Функции доступа:
| QDnsLookup::Error | error() const |
Сигнал оповещения:
| void | finished() |
errorString : const QString
Это свойство содержит удобочитаемое описание ошибки, если поиск DNS завершился неудачей.
Функции доступа:
| QString | errorString() const |
Сигнал оповещения:
| void | finished() |
name : QString
Это свойство содержит имя для поиска.
Примечание: Имя будет закодировано с помощью IDNA, что означает, что оно не подходит для запросов записей SRV, совместимых со спецификацией DNS-SD.
Функции доступа:
| QString | name() const |
| void | setName(const QString &name) |
Сигнал оповещения:
| void | nameChanged(const QString &name) |
nameserver : QHostAddress
Это свойство содержит сервер имён, который следует использовать для поиска DNS.
Функции доступа:
| QHostAddress | nameserver() const |
| void | setNameserver(const QHostAddress &nameserver) |
Сигнал оповещения:
| void | nameserverChanged(const QHostAddress &nameserver) |
type : Type
Это свойство содержит тип поиска DNS.
Функции доступа:
| QDnsLookup::Type | type() const |
| void | setType(QDnsLookup::Type) |
Сигнал оповещения:
| void | typeChanged(QDnsLookup::Type type) |
Документация по членам-функциям
QDnsLookup::QDnsLookup(QObject *parent = nullptr)
Создаёт объект QDnsLookup и устанавливает parent в качестве родительского объекта.
Свойство type будет по умолчанию равно QDnsLookup::A.
QDnsLookup::QDnsLookup(QDnsLookup::Type type, const QString &name, QObject *parent = nullptr)
Создаёт объект QDnsLookup для указанного типа type и имени name и устанавливает parent в качестве родительского объекта.
QDnsLookup::QDnsLookup(QDnsLookup::Type type, const QString &name, const QHostAddress &nameserver, QObject *parent = nullptr)
Создаёт объект QDnsLookup для указанного типа type, имени name и сервера имён nameserver и устанавливает parent в качестве родительского объекта.
Эта функция была добавлена в Qt 5.4.
[virtual] QDnsLookup::~QDnsLookup()
Удаляет объект QDnsLookup.
Безопасно удалять объект QDnsLookup, даже если он не завершён, вы просто никогда не получите его результаты.
[slot] void QDnsLookup::abort()
Прерывает операцию поиска DNS.
Если поиск уже завершён, ничего не делает.
QList<QDnsDomainNameRecord> QDnsLookup::canonicalNameRecords() const
Возвращает список записей канонических имён, связанных с этим поиском.
[signal] void QDnsLookup::finished()
Этот сигнал испускается, когда обработка ответа завершается.
Примечание: Сигнал оповещения для свойства error. Сигнал оповещения для свойства errorString.
QList<QDnsHostAddressRecord> QDnsLookup::hostAddressRecords() const
Возвращает список записей адресов хоста, связанных с этим поиском.
bool QDnsLookup::isFinished() const
Возвращает значение, указывающее, завершён ли ответ или прерван.
[slot] void QDnsLookup::lookup()
Выполняет поиск DNS.
Сигнал finished() испускается по завершении.
QList<QDnsMailExchangeRecord> QDnsLookup::mailExchangeRecords() const
Возвращает список записей обмена почтой, связанных с этим поиском.
Записи отсортированы в соответствии с RFC 5321, поэтому при подключении к серверам их следует пробовать в порядке списка.
[signal] void QDnsLookup::nameChanged(const QString &name)
Этот сигнал испускается, когда имя поиска name изменяется. name — новое имя поиска.
Примечание: Сигнал оповещения для свойства name.
QList<QDnsDomainNameRecord> QDnsLookup::nameServerRecords() const
Возвращает список записей серверов имён, связанных с этим поиском.
QList<QDnsDomainNameRecord> QDnsLookup::pointerRecords() const
Возвращает список указательных записей, связанных с этим поиском.
QList<QDnsServiceRecord> QDnsLookup::serviceRecords() const
Возвращает список записей служб, связанных с этим поиском.
Записи отсортированы в соответствии с RFC 2782, поэтому при подключении к серверам их следует пробовать в порядке списка.
END_OF_DOCUMENT_MARKERQList<QDnsTextRecord> QDnsLookup::textRecords() const
Возвращает список записей текстовых записей, связанных с этим запросом.
[signal] void QDnsLookup::typeChanged(QDnsLookup::Type type)
Этот сигнал излучается, когда изменяется тип запроса type. type — новый тип запроса.
Примечание: Сигнал уведомления для свойства type.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qdnslookup.html