이 페이지에서

QNetworkAddressEntry Class

QNetworkAddressEntry 클래스는 네트워크 인터페이스에서 지원하는 IP 주소 하나와, 이에 연관된 서브넷 마스크 및 브로드캐스트 주소를 저장합니다. 더 보기...

헤더: #include <QNetworkAddressEntry>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network

참고: 이 클래스의 모든 함수는 재진입 가능합니다.

공개 유형

enum DnsEligibilityStatus { DnsEligibilityUnknown, DnsEligible, DnsIneligible }

공개 함수

QNetworkAddressEntry()
QNetworkAddressEntry(const QNetworkAddressEntry &other)
~QNetworkAddressEntry()
QHostAddress broadcast() const
void clearAddressLifetime()
QNetworkAddressEntry::DnsEligibilityStatus dnsEligibility() const
QHostAddress ip() const
bool isLifetimeKnown() const
bool isPermanent() const
bool isTemporary() const
QHostAddress netmask() const
QDeadlineTimer preferredLifetime() const
int prefixLength() const
void setAddressLifetime(QDeadlineTimer preferred, QDeadlineTimer validity)
void setBroadcast(const QHostAddress &newBroadcast)
void setDnsEligibility(QNetworkAddressEntry::DnsEligibilityStatus status)
void setIp(const QHostAddress &newIp)
void setNetmask(const QHostAddress &newNetmask)
void setPrefixLength(int length)
void swap(QNetworkAddressEntry &other)
QDeadlineTimer validityLifetime() const
bool operator!=(const QNetworkAddressEntry &other) const
QNetworkAddressEntry &operator=(const QNetworkAddressEntry &other)
bool operator==(const QNetworkAddressEntry &other) const
(since 6.2) QDebug operator<<(QDebug debug, const QNetworkAddressEntry &entry)

상세 설명

각 네트워크 인터페이스는 0개 이상의 IP 주소를 포함할 수 있으며, 이 IP 주소는 (운영 체제의 지원 여부에 따라) 넷마스크 및/또는 브로드캐스트 주소와 연관될 수 있습니다.

이 클래스는 이러한 그룹 중 하나를 나타냅니다.

멤버 유형 문서

enum QNetworkAddressEntry::DnsEligibilityStatus

이 열거형은 주어진 호스트 주소가 도메인 이름 시스템(DNS)이나 기타 유사한 이름 확인 메커니즘에 공개될 자격이 있는지 여부를 나타냅니다. 일반적으로, 주소가 영구적일 필요는 없더라도, 해당 컴퓨터가 불특정 기간 동안 해당 주소를 통해 접근 가능할 경우 공개에 적합하다고 간주됩니다. 예를 들어, DHCP를 통해 할당받은 주소는 대개 게시 대상에 포함되지만, 암호학적 방법으로 생성된 임시 IPv6 주소는 해당되지 않습니다.

상수값설명
QNetworkAddressEntry::DnsEligibilityUnknown-1Qt와 운영 체제가 이 주소를 공개해야 할지 여부를 판단할 수 없었습니다. 애플리케이션은 공개 가능한 주소를 찾을 수 없는 경우 추가적인 휴리스틱을 적용해야 할 수도 있습니다.
QNetworkAddressEntry::DnsEligible1이 주소는 DNS에 게시할 수 있습니다.
QNetworkAddressEntry::DnsIneligible0이 주소는 DNS에 게시되어서는 안 되며, 발신 패킷의 소스 주소로 사용되는 경우를 제외하고는 다른 당사자에게 전송되어서는 안 됩니다.

dnsEligibility() 및 setDnsEligibility()도 참조하십시오 .

멤버 함수 문서

QNetworkAddressEntry::QNetworkAddressEntry()

빈 QNetworkAddressEntry 객체를 생성합니다.

QNetworkAddressEntry::QNetworkAddressEntry(const QNetworkAddressEntry &other)

other 객체의 복사본인 QNetworkAddressEntry 객체를 생성합니다.

[noexcept] QNetworkAddressEntry::~QNetworkAddressEntry()

이 QNetworkAddressEntry 객체를 삭제합니다.

QHostAddress QNetworkAddressEntry::broadcast() const

IPv4 주소 및 서브넷 마스크와 연관된 브로드캐스트 주소를 반환합니다. 일반적으로 서브넷 마스크에 0이 포함된 IP 주소의 비트를 1로 설정함으로써 이 두 정보로부터 브로드캐스트 주소를 도출할 수 있습니다. (즉, IP 주소와 서브넷 마스크의 역수를 비트별 OR 연산하는 방식입니다.)

IPv6 주소의 경우, 해당 시스템에서는 브로드캐스트 개념이 멀티캐스트로 대체되었기 때문에 이 멤버는 항상 비어 있습니다. 특히, 로컬 네트워크의 모든 노드에 해당하는 호스트 그룹은 "all-nodes" 특수 멀티캐스트 그룹(주소 FF02::1)을 통해 접근할 수 있습니다.

setBroadcast()도 참조하십시오 .

void QNetworkAddressEntry::clearAddressLifetime()

이 주소의 우선 수명과 유효 수명을 모두 재설정합니다. 이 호출 후, ` isLifetimeKnown()`는 ` false`를 반환합니다.

preferredLifetime(), validityLifetime(), isLifetimeKnown(), setAddressLifetime()도 참조하십시오 .

QNetworkAddressEntry::DnsEligibilityStatus QNetworkAddressEntry::dnsEligibility() const

이 주소가 도메인 이름 시스템(DNS) 또는 이와 유사한 이름 확인 메커니즘에 게시될 수 있는지 여부를 반환합니다.

일반적으로, 주소가 영구적일 필요는 없으나, 이 시스템에 불특정 기간 동안 접속할 수 있는 주소라면 공개에 적합한 것으로 간주됩니다. 예를 들어, DHCP를 통해 할당받은 주소는 대개 공개에 적합하지만, 암호학적 방법으로 생성된 임시 IPv6 주소는 그렇지 않습니다.

일부 시스템에서는 QNetworkInterface 가 어떤 주소가 게시 가능한지 휴리스틱 방식으로 판단해야 할 수도 있습니다.

isLifetimeKnown(), isPermanent() 및 setDnsEligibility()도 참조하십시오 .

QHostAddress QNetworkAddressEntry::ip() const

이 함수는 네트워크 인터페이스에서 발견된 IPv4 또는 IPv6 주소 중 하나를 반환합니다.

setIp()함수도 참조하십시오 .

bool QNetworkAddressEntry::isLifetimeKnown() const

주소의 유효 기간이 알려진 경우 true 을 반환하고, 알려지지 않은 경우 false 을 반환합니다. 유효 기간이 알려지지 않은 경우, preferredLifetime()과 validityLifetime() 모두 QDeadlineTimer::Forever 을 반환합니다.

preferredLifetime(), validityLifetime(), setAddressLifetime() 및 clearAddressLifetime()도 참조하십시오 .

bool QNetworkAddressEntry::isPermanent() const

이 주소가 해당 인터페이스에서 영구적인 경우 ` true `를 반환하고, 임시인 경우 ` false `를 반환합니다. 영구 주소란 만료 시간이 없으며 대개 정적(수동으로 구성된) 주소입니다.

이 정보를 확인할 수 없는 경우, 이 함수는 true 를 반환합니다.

참고: 운영 체제 및 네트워킹 구성 도구에따라 , 도구가 운영 체제에 세부 정보를 올바르게 전달하지 않은 경우 임시 주소가 영구 주소로 해석될 수 있습니다.

isLifetimeKnown(), validityLifetime(), isTemporary()도 참조하십시오 .

bool QNetworkAddressEntry::isTemporary() const

이 주소가 해당 인터페이스에서 임시 주소인 경우 true 을, 영구 주소인 경우 false 을 반환합니다.

isLifetimeKnown(), validityLifetime() 및 isPermanent()도 참조하십시오 .

QHostAddress QNetworkAddressEntry::netmask() const

IP 주소와 연관된 서브넷 마스크를 반환합니다. 서브넷 마스크는 255.255.0.0과 같은 IP 주소 형식으로 표시됩니다.

IPv6 주소의 경우, 접두사 길이는 1로 설정된 비트의 수가 접두사 길이와 동일한 주소로 변환됩니다. 접두사 길이가 64비트(가장 일반적인 값)인 경우, 넷마스크는 FFFF:FFFF:FFFF:FFFF::를 포함하는 QHostAddress 형태로 표현됩니다.

setNetmask() 및 prefixLength()항목도 참조하십시오 .

QDeadlineTimer QNetworkAddressEntry::preferredLifetime() const

알려져 있는 경우, 이 주소가 더 이상 권장되지 않게 되는(사용 중단되는) 시한을 반환합니다. 주소의 유효 기간을 알 수 없는 경우( isLifetimeKnown() 참조), 이 함수는 항상 ` QDeadlineTimer::Forever`를 반환합니다.

주소가 선호되는 동안에는 운영 체제에서 새로운 발신 패킷의 발신 주소로 이 주소를 사용할 수 있습니다. 사용 중단된 후에도 해당 주소는 최종적으로 제거될 때까지 한동안 수신 패킷에 대해 유효한 상태로 유지됩니다( validityLifetime() 참조).

validityLifetime(), isLifetimeKnown(), setAddressLifetime() 및 clearAddressLifetime()도 참조하십시오 .

int QNetworkAddressEntry::prefixLength() const

이 IP 주소의 접두사 길이를 반환합니다. 접두사 길이는 넷마스크에서 1로 설정된 비트 수와 일치합니다( netmask() 참조). IPv4 주소의 경우 값은 0에서 32 사이입니다. IPv6 주소의 경우 0에서 128 사이이며, 이는 주소를 표현하는 데 선호되는 형식입니다.

접두사 길이를 확인할 수 없는 경우(즉, netmask()가 null QHostAddress()를 반환하는 경우), 이 함수는 -1을 반환합니다.

setPrefixLength() 및 netmask()도 참조하십시오 .

void QNetworkAddressEntry::setAddressLifetime(QDeadlineTimer preferred, QDeadlineTimer validity)

이 주소의 선호 수명과 유효 수명을 각각 preferred 및 validity 에 명시된 기한으로 설정합니다. 이 호출 후에는, 두 매개변수가 모두 QDeadlineTimer::Forever 인 경우에도 isLifetimeKnown()는 true 를 반환합니다.

preferredLifetime(), validityLifetime(), isLifetimeKnown(), clearAddressLifetime()도 참조하십시오 .

void QNetworkAddressEntry::setBroadcast(const QHostAddress &newBroadcast)

이 QNetworkAddressEntry 객체의 브로드캐스트 IP 주소를 newBroadcast 로 설정합니다.

broadcast()도 참조하십시오 .

void QNetworkAddressEntry::setDnsEligibility(QNetworkAddressEntry::DnsEligibilityStatus status)

이 주소에 대한 DNS 적격성 플래그를 ‘ status ’로 설정합니다.

dnsEligibility()도 참조하십시오 .

void QNetworkAddressEntry::setIp(const QHostAddress &newIp)

QNetworkAddressEntry 객체가 포함하고 있는 IP 주소를 newIp 로 설정합니다.

ip()도 참조하십시오 .

void QNetworkAddressEntry::setNetmask(const QHostAddress &newNetmask)

이 QNetworkAddressEntry 객체가 포함하고 있는 서브넷 마스크를 newNetmask 로 설정합니다. 서브넷 마스크를 설정하면 접두사 길이도 새로운 서브넷 마스크에 맞게 설정됩니다.

netmask() 및 setPrefixLength()도 참조하십시오 .

void QNetworkAddressEntry::setPrefixLength(int length)

이 IP 주소의 접두사 길이를 length 로 설정합니다. length 의 값은 해당 IP 주소 유형에 대해 유효해야 합니다. 즉, IPv4 주소의 경우 0에서 32 사이, IPv6 주소의 경우 0에서 128 사이여야 합니다. 유효하지 않은 값으로 설정하는 것은 -1로 설정하는 것과 동일하며, 이는 “접두사 길이 없음”을 의미합니다.

접두사 길이를 설정하면 넷마스크도 함께 설정됩니다( netmask() 참조).

prefixLength() 및 setNetmask()도 참조하십시오 .

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

이 네트워크 주소 항목 인스턴스를 other 로 교체합니다. 이 작업은 매우 빠르게 수행되며 실패하는 일이 없습니다.

QDeadlineTimer QNetworkAddressEntry::validityLifetime() const

이 주소가 무효화되어 네트워킹 스택에서 제거되는 시한을, 알려진 경우 반환합니다. 주소의 유효 기간이 알려지지 않은 경우( isLifetimeKnown() 참조), 이 함수는 항상 ` QDeadlineTimer::Forever`를 반환합니다.

주소가 유효한 동안에는 운영 체제에서 이 머신의 유효한 목적지 주소로 인정합니다. 새로운 발신 패킷의 소스 주소로 사용될지 여부는 여러 규칙 중에서도 우선 유효 기간( preferredLifetime() 참조)에 의해 제어됩니다.

preferredLifetime(), isLifetimeKnown(), setAddressLifetime() 및 clearAddressLifetime()도 참조하십시오 .

bool QNetworkAddressEntry::operator!=(const QNetworkAddressEntry &other) const

이 네트워크 주소 항목이 other 과 다를 경우, true 를 반환합니다.

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

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

bool QNetworkAddressEntry::operator==(const QNetworkAddressEntry &other) const

이 네트워크 주소 항목이 other 과 동일한 경우 true 를 반환합니다.

관련 비회원

[since 6.2] QDebug operator<<(QDebug debug, const QNetworkAddressEntry &entry)

QNetworkAddressEntry entry 를 스트림에 기록하고, debug 스트림에 대한 참조를 반환합니다.

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

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