이 페이지에서

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)
(since 6.12) void clearCache()
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 주소와 연관된 호스트 이름을 찾습니다. 이 클래스는 두 가지 정적 편의 함수를 제공합니다. 하나는 비동기적으로 작동하여 호스트가 발견되면 신호를 발산하는 함수이고, 다른 하나는 차단 모드로 실행되어 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 객체에 저장됩니다. 호스트의 IP 주소 목록을 얻으려면 addresses()를 호출하고, 조회된 호스트 이름을 얻으려면 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 스레드 하나 대신 여러 스레드를 사용하여 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)

id 라는 조회 ID를 가진 빈 호스트 정보 객체를 생성합니다.

lookupId()도 참조하십시오 .

QHostInfo::QHostInfo(const QHostInfo &other)

other 의 복사본을 생성합니다.

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

other 에서 새로운 QHostInfo 객체를 이동 생성합니다.

참고: 이동된원본 객체인 ` other `는 부분적으로 형성된 상태가 되며, 이 상태에서는 소멸과 새 값 할당만이 유효한 연산입니다.

[noexcept] QHostInfo::~QHostInfo()

호스트 정보 객체를 삭제합니다.

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

lookupHost() 함수가 반환한 ID id 에 대한 호스트 조회를 중단합니다.

참고: 이 함수는 스레드 안전합니다.

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()도 참조하십시오 .

[static, since 6.12] void QHostInfo::clearCache()

lookupHost() 및 fromName()에서 사용하는 내부 DNS 캐시를 지웁니다.

캐시된 호스트 정보가 오래되어 최신 조회 정보가 필요한 경우 이 메서드를 호출하십시오. 일반적인 사용 사례는 다음과 같습니다.

  • 애플리케이션이 네트워크 구성 변경을 감지한 경우(예: Wi-Fi와 이더넷 간 전환, 또는 VPN 연결/해제).
  • 서버 주소가 변경된 것이 확인된 경우(예: 동적 DNS 또는 장애 조치) 애플리케이션이 호스트 이름을 다시 조회해야 합니다. 업스트림 DNS 서버와 리졸버에는 자체 TTL이 있으므로, 여기서 캐시를 지워도 해당 서버에는 영향을 미치지 않습니다. 따라서 업스트림 TTL이 만료될 때까지는 새로운 조회 결과에서도 이전 주소가 반환될 수 있습니다.
  • 애플리케이션은 조회에 대해 캐시된 결과를 사용하지만, 캐시가 만료되었거나 더 이상 유효하지 않은 경우 새로운 조회가 필요합니다.

이 함수는 캐시를 지우는 역할만 합니다. 진행 중인 조회를 취소하지는 않으며, 해당 조회는 완료되고 그 결과도 정상적으로 전달됩니다. 진행 중인 작업에 영향을 주지 않으면서 향후 조회를 다시 수행하고자 할 때 이 함수를 사용하십시오.

참고: 이 함수는 스레드 안전합니다.

이 함수는 Qt 6.12에서 도입되었습니다.

lookupHost() 및 fromName()도 참조하십시오 .

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 내의 슬롯 또는 신호 member 가 QHostInfo 인수를 받아 호출됩니다. 이후 QHostInfo 객체를 확인하여 조회 결과를 얻을 수 있습니다.

조회는 단일 함수 호출로 수행됩니다. 예를 들면 다음과 같습니다:

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

이 슬롯의 구현은 조회 결과로 반환된 주소에 대한 기본 정보를 출력하거나, 조회가 실패한 경우 오류를 보고합니다:

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 는 역방향 조회(reverse lookup)를 수행합니다). 조회가 성공하면, 결과 QHostInfo 에는 호스트 이름에 대한 해결된 도메인 이름과 IP 주소가 모두 포함됩니다. 예시:

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

참고: lookupHost()를 사용하여 여러 요청을 시작하는 경우, 신호가 전송되는 순서는 보장되지 않습니다 .

참고: Qt 6.7 이전버전에서는 이 함수가 ` receiver `를 (const가 아닌) ` QObject*`로 받아들였습니다.

참고: 이 함수는 스레드 안전합니다.

abortHostLookup(), addresses(), error(), fromName()도 참조하십시오 .

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

호스트 이름 name 과 연관된 IP 주소를 조회하고, 조회 ID를 반환합니다. 조회 결과가 준비되면, ` functor ` 함수가 ` QHostInfo ` 인수를 받아 호출됩니다. 이후 ` 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 는 호출되지 않습니다. functor 는 context 의 스레드에서 실행됩니다. 컨텍스트의 스레드에는 실행 중인 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)

other 를 이 QHostInfo 인스턴스에 이동 할당합니다.

참고: 이동된객체 other 는 부분적으로 형성된 상태로 전환되며, 이 상태에서는 소멸과 새 값 할당만이 유효한 연산입니다.

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

other 객체의 데이터를 이 호스트 정보 객체에 할당하고, 해당 객체에 대한 참조를 반환합니다.

© 2026 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.