QNetworkInterface Class
QNetworkInterface 클래스는 호스트의 IP 주소 및 네트워크 인터페이스 목록을 제공합니다. 더 보기...
헤더: | #include <QNetworkInterface> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake: | QT += network |
- 상속된 멤버를 포함한 모든 멤버 목록
- Q네트워크 인터페이스는 네트워크 프로그래밍 API와 암시적으로 공유되는 클래스의 일부입니다.
참고: 이 클래스의 모든 함수는 재진입됩니다.
공용 유형
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) |
상세 설명
Q네트워크 인터페이스는 프로그램이 실행되는 호스트에 연결된 하나의 네트워크 인터페이스를 나타냅니다. 각 네트워크 인터페이스는 0개 이상의 IP 주소를 포함할 수 있으며, 각 인터페이스는 넷마스크 및/또는 브로드캐스트 주소와 선택적으로 연결될 수 있습니다. 이러한 트리오 목록은 addressEntries()로 확인할 수 있습니다. 또는 넷마스크나 브로드캐스트 주소 또는 기타 정보가 필요하지 않은 경우 allAddresses() 편의 기능을 사용하여 활성 인터페이스의 IP 주소만 가져올 수 있습니다.
Q네트워크 인터페이스는 hardwareAddress()를 사용하여 인터페이스의 하드웨어 주소도 보고합니다.
모든 운영 체제가 모든 기능 보고를 지원하는 것은 아닙니다. 모든 플랫폼에서 이 클래스는 IPv4 주소만 나열하도록 보장합니다. 특히 IPv6 주소 목록은 Windows, Linux, macOS 및 BSD에서만 지원됩니다.
QNetworkAddressEntry 를참조하세요 .
멤버 유형 문서
열거형 Q네트워크 인터페이스::인터페이스 플래그
플래그 Q네트워크 인터페이스::인터페이스 플래그
이 네트워크 인터페이스와 관련된 플래그를 지정합니다. 가능한 값은 다음과 같습니다:
Constant | 값 | 설명 |
---|---|---|
QNetworkInterface::IsUp | 0x1 | 네트워크 인터페이스가 "가동 중" - 관리 작업에 의해 활성화됨 |
QNetworkInterface::IsRunning | 0x2 | 네트워크 인터페이스가 작동 중입니다: "위로" 구성되고 (일반적으로) 네트워크에 물리적으로 연결되어 있습니다. |
QNetworkInterface::CanBroadcast | 0x4 | 네트워크 인터페이스가 브로드캐스트 모드에서 작동합니다. |
QNetworkInterface::IsLoopBack | 0x8 | 네트워크 인터페이스는 루프백 인터페이스입니다: 즉, 호스트 컴퓨터 자체를 대상으로 하는 가상 인터페이스입니다. |
QNetworkInterface::IsPointToPoint | 0x10 | 네트워크 인터페이스는 지점 간 인터페이스입니다. 즉, 직접 연결할 수 있는 하나의 다른 주소가 있습니다. |
QNetworkInterface::CanMulticast | 0x20 | 네트워크 인터페이스가 멀티캐스팅을 지원합니다. |
하나의 네트워크 인터페이스는 브로드캐스트 기반과 지점 간 인터페이스가 될 수 없습니다.
인터페이스 플래그 유형은 QFlags<인터페이스 플래그>에 대한 타입 정의입니다. 인터페이스 플래그 값의 OR 조합을 저장합니다.
enum QNetworkInterface::InterfaceType
이 인터페이스의 하드웨어 유형(PHY 레이어, OSI 레벨 1)을 확인할 수 있는 경우 지정합니다. 아래 나열된 인터페이스 유형에 속하지 않는 인터페이스 유형은 일반적으로 알 수 없음으로 표시되지만, 향후 Qt 버전에서는 새로운 열거값이 추가될 수 있습니다.
가능한 값은 다음과 같습니다:
Constant | 값 | 설명 |
---|---|---|
QNetworkInterface::Unknown | 0 | 인터페이스 유형을 확인할 수 없거나 나열된 다른 유형 중 하나가 아닙니다. |
QNetworkInterface::Loopback | 1 | 루프백 IP 주소(127.0.0.1, ::1)가 할당된 가상 루프백 인터페이스입니다. |
QNetworkInterface::Virtual | 2 | 가상으로 결정되었지만 다른 가능한 유형이 아닌 인터페이스 유형입니다. 예를 들어 터널 인터페이스는 (현재) 가상 인터페이스로 감지됩니다. |
QNetworkInterface::Ethernet | 3 | IEEE 802.3 이더넷 인터페이스는 많은 시스템에서 다른 유형의 IEEE 802 인터페이스도 이더넷(특히 Wi-Fi)으로 감지될 수 있습니다. |
QNetworkInterface::Wifi | 8 | IEEE 802.11 Wi-Fi 인터페이스. 일부 시스템에서는 QNetworkInterface 이 일반 이더넷과 Wi-Fi를 구분하지 못하여 이 열거형 값을 반환하지 않을 수 있습니다. |
QNetworkInterface::Ieee80211 | Wifi | Wi-Fi의 별칭입니다. |
QNetworkInterface::CanBus | 5 | 일반적으로 자동차 시스템에서 볼 수 있는 ISO 11898 컨트롤러 영역 네트워크 버스 인터페이스입니다. |
QNetworkInterface::Fddi | 7 | 광섬유를 통한 근거리 통신망인 ANSI X3T12 광섬유 분산 데이터 인터페이스. |
QNetworkInterface::Ppp | 6 | 지점 간 프로토콜 인터페이스로, 하위 전송 계층을 통해 두 노드 간에 직접 연결을 설정합니다(종종 무선 또는 물리적 회선을 통한 직렬). |
QNetworkInterface::Slip | 4 | 직렬 회선 인터넷 프로토콜 인터페이스. |
QNetworkInterface::Phonet | 9 | 셀룰러 모뎀과의 통신을 위해 Linux Phonet 소켓 제품군을 사용하는 인터페이스. 자세한 내용은 Linux 커널 설명서를 참조하세요. |
QNetworkInterface::Ieee802154 | 10 | IEEE 802.15.4 개인 영역 네트워크 인터페이스(6LoWPAN 제외)(아래 참조). |
QNetworkInterface::SixLoWPAN | 11 | 6LoWPAN(저전력 무선 개인 영역 네트워크를 통한 IPv6) 인터페이스는 IEEE 802.15.4 PHY에서 작동하지만 IPv6 및 UDP에 대한 특정 헤더 압축 체계가 있습니다. 이 유형의 인터페이스는 메시 네트워킹에 자주 사용됩니다. |
QNetworkInterface::Ieee80216 | 12 | IEEE 802.16 무선 광역 네트워크, "WiMAX"라는 상업적 이름으로도 알려져 있습니다. |
QNetworkInterface::Ieee1394 | 13 | IEEE 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()
호스트 머신에 있는 모든 네트워크 인터페이스 목록을 반환합니다. 실패하면 요소가 0인 목록을 반환합니다.
QNetworkInterface::InterfaceFlags QNetworkInterface::flags() const
이 네트워크 인터페이스와 관련된 플래그를 반환합니다.
QString QNetworkInterface::hardwareAddress() const
이 인터페이스의 하위 레벨 하드웨어 주소를 반환합니다. 이더넷 인터페이스의 경우 콜론으로 구분된 문자열 표현의 MAC 주소가 됩니다.
다른 인터페이스 유형에는 다른 유형의 하드웨어 주소가 있을 수 있습니다. 구현은 이 함수가 유효한 MAC 주소를 반환하는지에 의존해서는 안 됩니다.
type()도 참조하세요 .
QString QNetworkInterface::humanReadableName() const
이름을 확인할 수 있는 경우 Windows에서 이 네트워크 인터페이스의 사람이 읽을 수 있는 이름(예: "로컬 영역 연결")을 반환합니다. 확인할 수 없는 경우 이 함수는 name()와 동일한 이름을 반환합니다. 사람이 읽을 수 있는 이름은 사용자가 Windows 제어판에서 수정할 수 있는 이름이므로 프로그램 실행 중에 변경될 수 있습니다.
Unix 시스템에서는 사람이 읽을 수 있는 이름에 대한 구성을 저장하지 않기 때문에 현재 이 함수는 항상 name()와 동일한 값을 반환합니다.
int QNetworkInterface::index() const
인터페이스 시스템 인덱스를 알고 있는 경우 반환합니다. 이는 운영 체제에서 이 인터페이스를 식별하기 위해 할당된 정수이며 일반적으로 변경되지 않습니다. 이 인덱스는 IPv6 주소의 범위 ID 필드와 일치합니다.
인덱스를 알 수 없는 경우 이 함수는 0을 반환합니다.
[static]
QNetworkInterface QNetworkInterface::interfaceFromIndex(int index)
내부 ID가 index 인 인터페이스에 대한 QNetworkInterface 객체를 반환합니다. 네트워크 인터페이스에는 시스템의 다른 인터페이스와 구별하기 위해 "인터페이스 인덱스"라는 고유 식별자가 있습니다. 이 값은 점진적으로 할당되는 경우가 많으며, 제거되었다가 다시 추가되는 인터페이스는 매번 다른 값을 갖게 됩니다.
이 인덱스는 IPv6 주소의 범위 ID 필드에서도 찾을 수 있습니다.
[static]
QNetworkInterface QNetworkInterface::interfaceFromName(const QString &name)
name 이라는 인터페이스에 대한 QNetworkInterface 객체를 반환합니다. 해당 인터페이스가 존재하지 않으면 이 함수는 잘못된 QNetworkInterface 객체를 반환합니다.
name 문자열은 실제 인터페이스 이름(예: "eth0" 또는 "en1")이거나 문자열 형식의 인터페이스 색인("1", "2" 등)일 수 있습니다.
[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
이 인터페이스의 최대 전송 단위를 알면 최대 전송 단위를 반환하고, 그렇지 않으면 0을 반환합니다.
최대 전송 단위는 링크 수준 조각화 없이 이 인터페이스에서 전송할 수 있는 가장 큰 패킷입니다. 애플리케이션은 이 값을 사용하여 조각화되지 않은 UDP 데이터그램에 맞는 페이로드의 크기를 계산할 수 있습니다. 전송할 수 있는 페이로드의 크기를 계산할 때는 인터페이스를 통한 통신에 사용되는 헤더 크기(예: TCP(20바이트) 또는 UDP(12), IPv4(20) 또는 IPv6(40, 일부 형태의 헤더 압축 없음)를 빼야 한다는 점을 잊지 마세요. 또한 대상에 대한 전체 경로(경로 MTU)의 MTU가 인터페이스의 MTU보다 작을 수 있다는 점에 유의하세요.
QUdpSocket 을참조하세요 .
QString QNetworkInterface::name() const
이 네트워크 인터페이스의 이름을 반환합니다. Unix 시스템에서는 인터페이스 유형이 포함된 문자열이며, 선택적으로 "eth0", "lo" 또는 "pcn0"과 같은 시퀀스 번호가 포함됩니다. Windows에서는 사용자가 변경할 수 없는 내부 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 스트림에 대한 참조를 반환합니다.
© 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.