QDnsLookup 類

The QDnsLookup class represents a DNS lookup. 更多...

頭: #include <QDnsLookup>
qmake: QT += network
Since: Qt 5.0
繼承: QObject

公共類型

enum Error { NoError, ResolverError, OperationCancelledError, InvalidRequestError, ..., NotFoundError }
enum Type { A, AAAA, ANY, CNAME, ..., TXT }

特性

公共函數

QDnsLookup (QObject * parent = Q_NULLPTR)
QDnsLookup (Type type , const QString & name , QObject * parent = Q_NULLPTR)
QDnsLookup (Type type , const QString & name , const QHostAddress & nameserver , QObject * parent = Q_NULLPTR)
~QDnsLookup ()
QList<QDnsDomainNameRecord> canonicalNameRecords () const
Error error () const
QString errorString () const
QList<QDnsHostAddressRecord> hostAddressRecords () const
bool isFinished () const
QList<QDnsMailExchangeRecord> mailExchangeRecords () const
QString name () const
QList<QDnsDomainNameRecord> nameServerRecords () const
QHostAddress nameserver () const
QList<QDnsDomainNameRecord> pointerRecords () const
QList<QDnsServiceRecord> serviceRecords () const
void setName (const QString & name )
void setNameserver (const QHostAddress & nameserver )
void setType ( QDnsLookup::Type )
QList<QDnsTextRecord> textRecords () const
類型 type () const

公共槽

void abort ()
void lookup ()

信號

void finished ()
void nameChanged (const QString & name )
void nameserverChanged (const QHostAddress & nameserver )
void typeChanged (Type type )

額外繼承成員

詳細描述

The QDnsLookup class represents a DNS lookup.

QDnsLookup uses the mechanisms provided by the operating system to perform DNS lookups. To perform a lookup you need to specify a name and type 然後援引 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 郵件交換記錄。
QDnsLookup::NS 2 名稱服務器記錄。
QDnsLookup::PTR 12 指針記錄。
QDnsLookup::SRV 33 服務記錄。
QDnsLookup::TXT 16 文本記錄。

特性文檔編製

error : const Error

此特性保持齣現錯誤的類型若 DNS 查找失敗,或 NoError .

訪問函數:

Error error () const

通知程序信號:

void finished ()

errorString : const QString

此特性保持錯誤的人類可讀描述,若 DNS 查找失敗。

訪問函數:

QString errorString () const

通知程序信號:

void finished ()

name : QString

此特性保持要查找的名稱。

注意: 名稱將使用 IDNA 編碼,這意味著它不適閤查詢兼容 DNS-SD 規範的 SRV 記錄。

訪問函數:

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 查找的類型。

訪問函數:

類型 type () const
void setType ( QDnsLookup::Type )

通知程序信號:

void typeChanged (Type type )

成員函數文檔編製

QDnsLookup:: QDnsLookup ( QObject * parent = Q_NULLPTR)

構造 QDnsLookup object and sets parent 作為父級對象。

The type 特性默認為 QDnsLookup::A .

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

構造 QDnsLookup 對象為給定 type and name 並設置 parent 作為父級對象。

QDnsLookup:: QDnsLookup ( Type type , const QString & name , const QHostAddress & nameserver , QObject * parent = Q_NULLPTR)

構造 QDnsLookup 對象為給定 type , name and nameserver 並設置 parent 作為父級對象。

該函數在 Qt 5.4 引入。

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 查找。

The 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 ,因此,若使用它們連接到服務器,應按照列錶它們的次序嘗試。

QList < QDnsTextRecord > QDnsLookup:: textRecords () const

返迴關聯此查找的文本記錄列錶。

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

此信號發射,當查找 type 改變。 type 是新的查找類型。

注意: 通知程序信號對於特性 type .