이 페이지에서

QNetworkInterface Class

QNetworkInterface 클래스는 호스트의 IP 주소 및 네트워크 인터페이스 목록을 제공합니다. 더 보기...

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

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

공개 유형

enum InterfaceFlag { IsUp, IsRunning, CanBroadcast, IsLoopBack, IsPointToPoint, CanMulticast }
flags InterfaceFlags
enum InterfaceType { Unknown, Loopback, Virtual, Ethernet, Wifi, …, Ieee1394 }

공개 함수

QNetworkInterface()
QNetworkInterface(const QNetworkInterface &other)
~QNetworkInterface()
QList<QNetworkAddressEntry> addressEntries() const
QNetworkInterface::InterfaceFlags flags() const
QString hardwareAddress() const
QString humanReadableName() const
int index() const
bool isValid() const
int maximumTransmissionUnit() const
QString name() const
void swap(QNetworkInterface &other)
QNetworkInterface::InterfaceType type() const
QNetworkInterface &operator=(const QNetworkInterface &other)

정적 공용 멤버

QList<QHostAddress> allAddresses()
QList<QNetworkInterface> allInterfaces()
QNetworkInterface interfaceFromIndex(int index)
QNetworkInterface interfaceFromName(const QString &name)
int interfaceIndexFromName(const QString &name)
QString interfaceNameFromIndex(int index)
QDebug operator<<(QDebug debug, const QNetworkInterface &networkInterface)

상세 설명

QNetworkInterface는 프로그램이 실행되고 있는 호스트에 연결된 하나의 네트워크 인터페이스를 나타냅니다. 각 네트워크 인터페이스에는 0개 이상의 IP 주소가 포함될 수 있으며, 각 IP 주소는 선택적으로 넷마스크 및/또는 브로드캐스트 주소와 연관될 수 있습니다. 이러한 3가지 정보의 목록은 ` addressEntries()`를 사용하여 얻을 수 있습니다. 또는, 넷마스크나 브로드캐스트 주소, 기타 정보가 필요하지 않은 경우에는 ` allAddresses()` 편의 함수를 사용하여 활성 인터페이스의 IP 주소만 얻을 수 있습니다.

QNetworkInterface는 또한 hardwareAddress()을 통해 인터페이스의 하드웨어 주소를 보고합니다.

모든 운영 체제가 모든 기능을 지원하는 것은 아닙니다. 모든 플랫폼에서 이 클래스가 IPv4 주소만 나열하는 것은 보장됩니다. 특히, IPv6 주소 나열은 Windows, Linux, macOS 및 BSD에서만 지원됩니다. 마찬가지로, type()가 반환하는 인터페이스 유형도 모든 플랫폼에서 사용할 수 있는 것은 아닙니다.

참고: Android에서는 플랫폼이 물리적 인터페이스의 하드웨어 유형 정보를 노출하지 않으므로, 인터페이스 유형은 항상 Unknown 로 보고됩니다.

QNetworkAddressEntry도 참조하십시오 .

멤버 유형 설명서

enum QNetworkInterface::InterfaceFlag
flags QNetworkInterface::InterfaceFlags

이 네트워크 인터페이스와 관련된 플래그를 지정합니다. 사용할 수 있는 값은 다음과 같습니다:

상수값설명
QNetworkInterface::IsUp0x1네트워크 인터페이스가 "up" 상태임 - 관리자의 조치에 의해 활성화됨
QNetworkInterface::IsRunning0x2네트워크 인터페이스가 작동 중입니다. "up" 상태로 구성되어 있으며 (일반적으로) 네트워크에 물리적으로 연결되어 있습니다
QNetworkInterface::CanBroadcast0x4네트워크 인터페이스가 브로드캐스트 모드로 작동 중입니다
QNetworkInterface::IsLoopBack0x8네트워크 인터페이스는 루프백 인터페이스입니다. 즉, 호스트 컴퓨터 자체를 대상으로 하는 가상 인터페이스입니다.
QNetworkInterface::IsPointToPoint0x10네트워크 인터페이스는 지점 간(point-to-point) 인터페이스입니다. 즉, 이 인터페이스를 통해 직접 연결할 수 있는 주소가 단 하나뿐입니다.
QNetworkInterface::CanMulticast0x20네트워크 인터페이스는 멀티캐스팅을 지원합니다

단, 하나의 네트워크 인터페이스가 브로드캐스트 기반이자 동시에 지점 간(point-to-point)일 수는 없습니다.

InterfaceFlags 유형은 QFlags<InterfaceFlag>에 대한 typedef입니다. 이 유형은 InterfaceFlag 값들의 OR 조합을 저장합니다.

enum QNetworkInterface::InterfaceType

이 인터페이스의 하드웨어 유형(PHY 계층, OSI 레벨 1)을 확인할 수 있는 경우 이를 지정합니다. 아래에 나열된 유형에 속하지 않는 인터페이스 유형은 일반적으로 ‘Unknown’으로 표시되지만, 향후 Qt 버전에서는 새로운 열거형 값이 추가될 수 있습니다.

가능한 값은 다음과 같습니다:

상수값설명
QNetworkInterface::Unknown0인터페이스 유형을 확인할 수 없거나, 나열된 다른 유형 중 하나에 해당하지 않습니다.
QNetworkInterface::Loopback1루프백 IP 주소(127.0.0.1, ::1)가 할당된 가상 루프백 인터페이스입니다.
QNetworkInterface::Virtual2가상 인터페이스로 판명되었으나, 다른 가능한 유형 중 어느 것도 아닌 인터페이스 유형입니다. 예를 들어, 터널 인터페이스는 (현재) 가상 인터페이스로 감지됩니다.
QNetworkInterface::Ethernet3IEEE 802.3 이더넷 인터페이스이지만, 많은 시스템에서 다른 유형의 IEEE 802 인터페이스도 이더넷으로 감지될 수 있습니다(특히 Wi-Fi).
QNetworkInterface::Wifi8IEEE 802.11 Wi-Fi 인터페이스입니다. 일부 시스템에서는 QNetworkInterface 가 일반 이더넷과 Wi-Fi를 구분하지 못해 이 열거형 값을 반환하지 않을 수 있습니다.
QNetworkInterface::Ieee80211WifiWiFi의 별칭입니다.
QNetworkInterface::CanBus5ISO 11898 컨트롤러 영역 네트워크(Controller Area Network) 버스 인터페이스로, 주로 자동차 시스템에서 발견됩니다.
QNetworkInterface::Fddi7ANSI X3T12 광섬유 분산 데이터 인터페이스(Fiber Distributed Data Interface)로, 광섬유를 통한 근거리 통신망입니다.
QNetworkInterface::Ppp6Point-to-Point Protocol(PPP) 인터페이스로, 하위 전송 계층(대개 무선 또는 물리적 회선을 통한 직렬 통신)을 통해 두 노드 간에 직접 연결을 설정합니다.
QNetworkInterface::Slip4직렬 라인 인터넷 프로토콜(SLIP) 인터페이스.
QNetworkInterface::Phonet9셀룰러 모뎀과의 통신을 위해 Linux Phonet 소켓 계열을 사용하는 인터페이스. 자세한 내용은 Linux 커널 문서를 참조하십시오.
QNetworkInterface::Ieee80215410IEEE 802.15.4 개인 영역 네트워크(Personal Area Network) 인터페이스. 6LoWPAN(아래 참조)은 제외됩니다.
QNetworkInterface::SixLoWPAN116LoWPAN(저전력 무선 개인 영역 네트워크를 통한 IPv6) 인터페이스로, IEEE 802.15.4 PHY에서 작동하지만 IPv6 및 UDP를 위한 특정 헤더 압축 방식을 사용합니다. 이 유형의 인터페이스는 종종 메시 네트워킹에 사용됩니다.
QNetworkInterface::Ieee8021612IEEE 802.16 무선 광역 네트워크(Wireless Metropolitan Area Network)로, 상용명 “WiMAX”로도 알려져 있습니다.
QNetworkInterface::Ieee139413IEEE 1394 인터페이스(일명 "FireWire").

멤버 함수 문서

QNetworkInterface::QNetworkInterface()

빈 네트워크 인터페이스 객체를 생성합니다.

QNetworkInterface::QNetworkInterface(const QNetworkInterface &other)

other 에 포함된 QNetworkInterface 객체의 복사본을 생성합니다.

[noexcept] QNetworkInterface::~QNetworkInterface()

QNetworkInterface 객체와 관련된 리소스를 해제합니다.

QList<QNetworkAddressEntry> QNetworkInterface::addressEntries() const

이 인터페이스가 보유한 IP 주소 목록과 해당 넷마스크 및 브로드캐스트 주소를 반환합니다.

넷마스크나 브로드캐스트 주소, 기타 정보가 필요하지 않은 경우, ` allAddresses()` 함수를 호출하여 활성 인터페이스의 IP 주소만 얻을 수 있습니다.

[static] QList<QHostAddress> QNetworkInterface::allAddresses()

이 편의 함수는 호스트 컴퓨터에서 발견된 모든 IP 주소를 반환합니다. 이는 ` allInterfaces()`가 반환한 객체 중 ` QNetworkInterface::IsUp ` 상태에 있는 모든 객체에 대해 ` addressEntries()`를 호출하여 ` QNetworkAddressEntry ` 객체 목록을 얻은 다음, 이 목록에 포함된 각 객체에 대해 ` QNetworkAddressEntry::ip()`를 호출하는 것과 동일합니다.

[static] QList<QNetworkInterface> QNetworkInterface::allInterfaces()

호스트 컴퓨터에서 발견된 모든 네트워크 인터페이스의 목록을 반환합니다. 실패할 경우 요소가 없는 목록을 반환합니다.

QNetworkInterface::InterfaceFlags QNetworkInterface::flags() const

이 네트워크 인터페이스와 관련된 플래그를 반환합니다.

QString QNetworkInterface::hardwareAddress() const

이 인터페이스의 저수준 하드웨어 주소를 반환합니다. 이더넷 인터페이스의 경우, 이 값은 콜론으로 구분된 문자열 형식의 MAC 주소가 됩니다.

다른 인터페이스 유형의 경우 다른 유형의 하드웨어 주소를 가질 수 있습니다. 구현에서는 이 함수가 유효한 MAC 주소를 반환한다고 가정해서는 안 됩니다.

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

QString QNetworkInterface::humanReadableName() const

Windows에서 이 네트워크 인터페이스의 사람이 읽기 쉬운 이름(예: “Local Area Connection”)을 확인할 수 있는 경우 해당 이름을 반환합니다. 이름을 확인할 수 없는 경우, 이 함수는 ` name()`와 동일한 결과를 반환합니다. 사람이 읽기 쉬운 이름은 사용자가 Windows 제어판에서 수정할 수 있는 이름이므로, 프로그램 실행 중에 변경될 수 있습니다.

유닉스에서는 유닉스 시스템이 사람이 읽기 쉬운 이름에 대한 설정을 저장하지 않기 때문에, 이 함수는 현재 항상 name()과 동일한 결과를 반환합니다.

int QNetworkInterface::index() const

알려져 있는 경우, 인터페이스 시스템 인덱스를 반환합니다. 이는 운영 체제가 해당 인터페이스를 식별하기 위해 할당하는 정수이며, 일반적으로 변경되지 않습니다. 이 값은 IPv6 주소의 범위 ID 필드와 일치합니다.

인덱스를 알 수 없는 경우, 이 함수는 0을 반환합니다.

[static] QNetworkInterface QNetworkInterface::interfaceFromIndex(int index)

내부 ID가 index 인 인터페이스에 대한 ` QNetworkInterface ` 객체를 반환합니다. 네트워크 인터페이스에는 시스템 내의 다른 인터페이스와 구별하기 위해 “인터페이스 인덱스”라고 하는 고유 식별자가 있습니다. 대개 이 값은 순차적으로 할당되며, 제거되었다가 다시 추가되는 인터페이스는 매번 다른 값을 받게 됩니다.

이 인덱스는 IPv6 주소의 범위 ID(scope ID) 필드에서도 확인할 수 있습니다.

[static] QNetworkInterface QNetworkInterface::interfaceFromName(const QString &name)

name 라는 이름의 인터페이스에 대한 QNetworkInterface 객체를 반환합니다. 해당 인터페이스가 존재하지 않는 경우, 이 함수는 유효하지 않은 QNetworkInterface 객체를 반환합니다.

문자열 name 은 실제 인터페이스 이름(예: "eth0" 또는 "en1")이거나 문자열 형식의 인터페이스 인덱스("1", "2" 등)일 수 있습니다.

name() 및 isValid()도 참조하십시오 .

[static] int QNetworkInterface::interfaceIndexFromName(const QString &name)

name 라는 이름의 인터페이스 인덱스를 반환하며, 해당 이름의 인터페이스가 없는 경우에는 0을 반환합니다. 이 함수는 다음 코드와 동일한 결과를 산출해야 하지만, 실행 속도는 더 빠를 것입니다.

    QNetworkInterface::interfaceFromName(name).index()

interfaceFromName(), interfaceNameFromIndex(), QNetworkDatagram::interfaceIndex()도 참조하십시오 .

[static] QString QNetworkInterface::interfaceNameFromIndex(int index)

인덱스가 index 인 인터페이스의 이름을 반환하며, 해당 인덱스의 인터페이스가 없는 경우 빈 문자열을 반환합니다. 이 함수는 다음 코드와 동일한 결과를 산출해야 하지만, 실행 속도는 더 빠를 것입니다.

    QNetworkInterface::interfaceFromIndex(index).name()

interfaceFromIndex(), interfaceIndexFromName(), QNetworkDatagram::interfaceIndex()도 참조하십시오 .

bool QNetworkInterface::isValid() const

이 QNetworkInterface 객체가 네트워크 인터페이스에 대한 유효한 정보를 포함하고 있는 경우, true 를 반환합니다.

int QNetworkInterface::maximumTransmissionUnit() const

이 인터페이스의 최대 전송 단위(MTU)를 알고 있는 경우 해당 값을 반환하고, 그렇지 않은 경우 0을 반환합니다.

최대 전송 단위(MTU)는 링크 계층에서 조각화(fragmentation)가 발생하지 않고 이 인터페이스를 통해 전송할 수 있는 가장 큰 패킷 크기입니다. 애플리케이션은 이 값을 사용하여 조각화되지 않은 UDP 데이터그램에 들어갈 수 있는 페이로드 크기를 계산할 수 있습니다. 전송 가능한 페이로드 크기를 계산할 때는, 해당 인터페이스를 통한 통신에 사용되는 헤더 크기(예: TCP(20바이트) 또는 UDP(12바이트), IPv4(20바이트) 또는 IPv6(헤더 압축 방식이 없는 경우 40바이트))를 반드시 차감해야 합니다. 또한 목적지까지의 전체 경로(경로 MTU)상의 MTU가 인터페이스의 MTU보다 작을 수 있다는 점에 유의하십시오.

QUdpSocket도 참조하십시오 .

QString QNetworkInterface::name() const

이 네트워크 인터페이스의 이름을 반환합니다. 유닉스 시스템에서는 이 이름이 인터페이스 유형과 선택적으로 순서 번호를 포함하는 문자열(예: “eth0”, “lo” 또는 “pcn0”)입니다. 윈도우에서는 사용자가 변경할 수 없는 내부 ID입니다.

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

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

QNetworkInterface::InterfaceType QNetworkInterface::type() const

이 인터페이스의 유형을 확인할 수 있는 경우, 해당 유형을 반환합니다. 유형을 확인할 수 없는 경우, 이 함수는 ` QNetworkInterface::Unknown`를 반환합니다.

hardwareAddress()도 참조하십시오 .

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

other 에 포함된 QNetworkInterface 객체의 내용을 이 객체로 복사합니다.

관련 비멤버

QDebug operator<<(QDebug debug, const QNetworkInterface &networkInterface)

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

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