QHostInfo Class

QHostInfo クラスは、ホスト名検索用の静的関数を提供します。詳細...

ヘッダ #include <QHostInfo>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network

注意:このクラスの関数はすべてリエントラントです。

パブリック型

enum HostInfoError { NoError, HostNotFound, UnknownError }

パブリック関数

QHostInfo(int id = -1)
QHostInfo(const QHostInfo &other)
QHostInfo(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=(QHostInfo &&other)
QHostInfo &operator=(const QHostInfo &other)

静的パブリック・メンバ

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

詳しい説明

QHostInfo は、ホスト名に関連付けられた IP アドレス、または IP アドレスに関連付けられたホスト名を見つけます。1つは非同期に動作し、ホストが見つかるとシグナルを発するもので、もう1つはブロックしてQHostInfoオブジェクトを返すものです。

ホストのIPアドレスを非同期に検索するには、lookupHost ()を呼び出します。この関数は、ホスト名またはIPアドレス、レシーバ・オブジェクト、およびスロットのシグネチャを引数として受け取り、IDを返します。ルックアップを中止するには、ルックアップ ID を指定してabortHostLookup() を呼び出します。

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

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

このスロットは、結果の準備ができたときに呼び出されます。結果は QHostInfo オブジェクトに格納されます。addresses() を呼び出してホストの IP アドレスのリストを取得し、hostName() を呼び出してルックアップされたホスト名を取得する。

検索に失敗した場合、error() は発生したエラーのタイプを返します。errorString() は、ルックアップ・エラーについて人間が読める説明を返す。

ルックアップをブロックしたい場合は、QHostInfo::fromName() 関数を使用してください:

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

QHostInfo は、IDNA および Punycode 標準を通じて国際化ドメイン名 (IDN) をサポートしています。

ローカル・ホストの名前を取得するには、静的なQHostInfo::localHostName() 関数を使用します。

QHostInfoは、オペレーティング・システムが提供するメカニズムを使用して検索を実行します。RFC 6724 に従って、ドメインまたはホストに登録されているすべての IP アドレスが返される保証はありません。

注意: Qt 4.6.1 以降、QHostInfo は DNS ルックアップに 1 つの DNS 専用スレッドではなく、複数のスレッドを使用するようになりました。これにより、パフォーマンスが向上しましたが、以前のバージョンの Qt と比較して、lookupHost() を使用する際のシグナル発信の順序が変更されました。

注意: Qt 4.6.3以降、QHostInfoはパフォーマンス向上のために小さな内部60秒DNSキャッシュを使用しています。

QAbstractSocket,RFC 3492,RFC 6724も参照してください

メンバ型のドキュメント

enum QHostInfo::HostInfoError

この列挙型は、ホスト名を解決しようとするときに起こりうる様々なエラーを記述する。

定数説明
QHostInfo::NoError0検索に成功しました。
QHostInfo::HostNotFound1ホストに IP アドレスが見つかりませんでした。
QHostInfo::UnknownError2不明なエラーが発生しました。

error() およびsetError()も参照

メンバ関数ドキュメント

[explicit] QHostInfo::QHostInfo(int id = -1)

ルックアップ IDid を持つ空のホスト情報オブジェクトを構築する。

lookupId()も参照

QHostInfo::QHostInfo(const QHostInfo &other)

other のコピーを作成する。

[noexcept] QHostInfo::QHostInfo(QHostInfo &&other)

Move-新しいQHostInfoをother から構築します。

注意: 移動元のオブジェクトother は、部分的に形成された状態に置かれます。この状態では、有効な操作は破棄と新しい値の割り当てのみです。

[noexcept] QHostInfo::~QHostInfo()

ホスト情報オブジェクトを破棄します。

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

lookupHost() が返す IDid 、ホスト検索を中止する。

lookupHost() およびlookupId()も参照のこと

QList<QHostAddress> QHostInfo::addresses() const

hostName() に関連付けられたIPアドレスのリストを返す。このリストは空でもよい。

例:

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)

与えられたホスト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, const QObject *receiver, const char *member)

ホスト名name に関連付けられたIPアドレスを検索し、検索用のIDを返す。ルックアップの結果が準備できると、receiver のスロットまたはシグナルmemberQHostInfo 引数で呼び出される。そして、QHostInfo オブジェクトを検査して、ルックアップの結果を得ることができる。

ルックアップは、例えば1回の関数呼び出しで実行される:

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

スロットの実装は、ルックアップによって返されたアドレスに関する基本情報を表示し、失敗した場合はエラーを報告する:

voidMyWidget::lookedUp(constQHostInfo&host) {if(host.error()!=QHostInfo::NoError) { もし        qDebug() << "Lookup failed:" << host.errorString();
       return; }const autoaddresses=host.addresses();for(constQHostAddressアドレス)        qDebug() << "Found address:" << address.toString();
}

ホスト名の代わりにリテラルIPアドレスをname に渡すと、QHostInfo はそのIPのドメイン名を検索する(つまり、QHostInfo逆引きを実行する)。成功すると、結果のQHostInfo に、解決されたドメイン名とホスト名のIPアドレスの両方が含まれる。例

QHostInfo::lookupHost("4.2.2.1", this, &MyWidget::lookedUp);

注意: lookupHost()で複数のリクエストを開始した場合、シグナルが発せられる順番は保証されません。

注意 : Qt 6.7 より前のバージョンでは、この関数はreceiver を (non-const)QObject* として受け取っていました。

abortHostLookup(),addresses(),error(),fromName()も参照してください

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

これはオーバーロードされた関数である。

ホスト名name に関連付けられたIPアドレスを検索し、検索用のIDを返す。ルックアップの結果の準備ができると、QHostInfo 引数とともにfunctor が呼び出される。その後、QHostInfo オブジェクトを検査して、ルックアップの結果を得ることができる。

functor は lookupHost を呼び出したスレッドで実行されます。そのスレッドでは Qt イベントループが実行されている必要があります。

注意: lookupHost() で複数のリクエストを開始した場合、シグナルが発せられる順番は保証されません。

abortHostLookup(),addresses(),error(),fromName()も参照してください

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

これはオーバーロードされた関数である。

ホスト名name に関連付けられたIPアドレスを検索し、検索用のIDを返す。ルックアップの結果の準備ができると、QHostInfo 引数とともにfunctor が呼び出される。その後、QHostInfo オブジェクトを検査して、ルックアップの結果を得ることができる。

ルックアップが完了する前にcontext が破棄されると、functor は呼び出されない。functorcontext のスレッドで実行されます。 コンテキストのスレッドでは、Qt イベントループが実行されている必要があります。

この関数の別のシグネチャを示します:

lookupHost(const QString &name, const QObject *receiver, PointerToMemberFunction function)

この場合、ルックアップの結果が準備できると、receiver のスロットまたはシグナルfunction が、QHostInfo の引数で呼び出されます。そして、QHostInfo オブジェクトを検査して、ルックアップの結果を得ることができる。

注意: lookupHost()で複数のリクエストを開始した場合、シグナルが発せられる順番は保証されません。

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(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 をid に設定する。

lookupId() およびlookupHost()も参照のこと

[noexcept] void QHostInfo::swap(QHostInfo &other)

このホスト情報をother と交換する。この操作は非常に速く、失敗することはない。

[noexcept] QHostInfo &QHostInfo::operator=(QHostInfo &&other)

Move-assignother をこのQHostInfo インスタンスに割り当てる。

注: 移動元のオブジェクトother は、部分的に形成された状態に置かれる。この状態では、有効な操作は破壊と新しい値の割り当てのみである。

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

このホスト情報オブジェクトにother オブジェクトのデータを代入し、その参照を返します。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.