Auf dieser Seite

QNetworkInterface Class

Die Klasse „QNetworkInterface“ liefert eine Auflistung der IP-Adressen und Netzwerkschnittstellen des Hosts. Mehr...

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

Hinweis: Alle Funktionen dieser Klasse sind reentrant.

Öffentliche Typen

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

Öffentliche Funktionen

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)

Statische öffentliche Mitglieder

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)

Ausführliche Beschreibung

QNetworkInterface repräsentiert eine Netzwerkschnittstelle, die an den Host angeschlossen ist, auf dem das Programm ausgeführt wird. Jede Netzwerkschnittstelle kann null oder mehr IP-Adressen enthalten, von denen jede optional mit einer Netzmaske und/oder einer Broadcast-Adresse verknüpft ist. Die Liste solcher Dreiergruppen kann mit ` addressEntries()` abgerufen werden. Alternativ können Sie, wenn die Netzmaske, die Broadcast-Adressen oder andere Informationen nicht benötigt werden, die Komfortfunktion ` allAddresses()` verwenden, um nur die IP-Adressen der aktiven Schnittstellen abzurufen.

QNetworkInterface gibt mit ` hardwareAddress()` auch die Hardware-Adresse der Schnittstelle zurück.

Nicht alle Betriebssysteme unterstützen die Ausgabe aller Funktionen. Nur die IPv4-Adressen werden von dieser Klasse auf allen Plattformen garantiert aufgelistet. Insbesondere wird die Auflistung von IPv6-Adressen nur unter Windows, Linux, macOS und den BSDs unterstützt. Ebenso ist der von ` type()` gemeldete Schnittstellentyp möglicherweise nicht auf allen Plattformen verfügbar.

Hinweis: Unter Android wird der Schnittstellentyp immer als „ Unknown “ gemeldet, da die Plattform keine Informationen zum Hardwaretyp für physische Schnittstellen bereitstellt.

Siehe auch ` QNetworkAddressEntry`.

Dokumentation zum Mitgliedstyp

enum QNetworkInterface::InterfaceFlag
flags QNetworkInterface::InterfaceFlags

Gibt die mit dieser Netzwerkschnittstelle verbundenen Flags an. Mögliche Werte sind:

KonstanteWertBeschreibung
QNetworkInterface::IsUp0x1Die Netzwerkschnittstelle ist „up“ – durch eine administrative Maßnahme aktiviert
QNetworkInterface::IsRunning0x2Die Netzwerkschnittstelle ist betriebsbereit: auf „up“ konfiguriert und (in der Regel) physisch mit einem Netzwerk verbunden
QNetworkInterface::CanBroadcast0x4Die Netzwerkschnittstelle arbeitet im Broadcast-Modus
QNetworkInterface::IsLoopBack0x8Die Netzwerkschnittstelle ist eine Loopback-Schnittstelle: Das heißt, es handelt sich um eine virtuelle Schnittstelle, deren Ziel der Host-Computer selbst ist
QNetworkInterface::IsPointToPoint0x10Die Netzwerkschnittstelle ist eine Punkt-zu-Punkt-Schnittstelle: Das heißt, es gibt eine einzige andere Adresse, die von ihr direkt erreicht werden kann.
QNetworkInterface::CanMulticast0x20Die Netzwerkschnittstelle unterstützt Multicasting

Beachten Sie, dass eine Netzwerkschnittstelle nicht gleichzeitig broadcastbasiert und Punkt-zu-Punkt sein kann.

Der Typ `InterfaceFlags` ist ein `typedef` für ` QFlags<InterfaceFlag>`. Er speichert eine ODER-Kombination von `InterfaceFlag`-Werten.

enum QNetworkInterface::InterfaceType

Gibt den Hardwaretyp (PHY-Schicht, OSI-Ebene 1) dieser Schnittstelle an, sofern dieser ermittelt werden konnte. Schnittstellentypen, die nicht zu den unten aufgeführten gehören, werden in der Regel als „Unbekannt“ aufgeführt, wobei in zukünftigen Versionen von Qt möglicherweise neue Aufzählungswerte hinzugefügt werden.

Die möglichen Werte sind:

KonstanteWertBeschreibung
QNetworkInterface::Unknown0Der Schnittstellentyp konnte nicht ermittelt werden oder gehört nicht zu den anderen aufgeführten Typen.
QNetworkInterface::Loopback1Die virtuelle Loopback-Schnittstelle, der die Loopback-IP-Adressen (127.0.0.1, ::1) zugewiesen sind.
QNetworkInterface::Virtual2Ein Schnittstellentyp, der als virtuell identifiziert wurde, aber keinem der anderen möglichen Typen entspricht. Beispielsweise werden Tunnelschnittstellen (derzeit) als virtuelle Schnittstellen erkannt.
QNetworkInterface::Ethernet3IEEE 802.3-Ethernet-Schnittstellen, obwohl auf vielen Systemen auch andere Arten von IEEE 802-Schnittstellen als Ethernet erkannt werden können (insbesondere WLAN).
QNetworkInterface::Wifi8IEEE 802.11-WLAN-Schnittstellen. Beachten Sie, dass „ QNetworkInterface “ auf einigen Systemen möglicherweise nicht zwischen normalem Ethernet und WLAN unterscheiden kann und diesen Enum-Wert daher nicht zurückgibt.
QNetworkInterface::Ieee80211WifiEin Alias für WLAN.
QNetworkInterface::CanBus5ISO 11898 Controller Area Network-Bus-Schnittstellen, die üblicherweise in Fahrzeugsystemen zu finden sind.
QNetworkInterface::Fddi7ANSI X3T12 Fiber Distributed Data Interface, ein lokales Netzwerk über Glasfaser.
QNetworkInterface::Ppp6Point-to-Point-Protocol-Schnittstellen, die eine direkte Verbindung zwischen zwei Knoten über eine untergeordnete Transportschicht herstellen (häufig seriell über Funk oder eine physikalische Leitung).
QNetworkInterface::Slip4Schnittstellen nach dem Serial Line Internet Protocol.
QNetworkInterface::Phonet9Schnittstellen, die die Linux-Phonet-Socket-Familie verwenden, zur Kommunikation mit Mobilfunkmodems. Weitere Informationen finden Sie in der Dokumentation zum Linux-Kernel.
QNetworkInterface::Ieee80215410IEEE 802.15.4-Personal-Area-Network-Schnittstellen, mit Ausnahme von 6LoWPAN (siehe unten).
QNetworkInterface::SixLoWPAN116LoWPAN-Schnittstellen (IPv6 über energiesparende drahtlose persönliche Netzwerke), die auf der IEEE 802.15.4-PHY-Schicht basieren, jedoch über spezifische Header-Komprimierungsverfahren für IPv6 und UDP verfügen. Diese Art von Schnittstelle wird häufig für Mesh-Netzwerke verwendet.
QNetworkInterface::Ieee8021612IEEE 802.16 Wireless Metropolitan Area Network, auch unter dem kommerziellen Namen „WiMAX“ bekannt.
QNetworkInterface::Ieee139413IEEE 1394-Schnittstellen (auch bekannt als „FireWire“).

Dokumentation der Mitgliedsfunktionen

QNetworkInterface::QNetworkInterface()

Erstellt ein leeres Netzwerk-Schnittstellenobjekt.

QNetworkInterface::QNetworkInterface(const QNetworkInterface &other)

Erstellt eine Kopie des QNetworkInterface-Objekts, das in „ other “ enthalten ist.

[noexcept] QNetworkInterface::~QNetworkInterface()

Gibt die mit dem Objekt „ QNetworkInterface “ verbundenen Ressourcen frei.

QList<QNetworkAddressEntry> QNetworkInterface::addressEntries() const

Gibt die Liste der IP-Adressen dieser Schnittstelle zusammen mit den zugehörigen Netzmasken und Broadcast-Adressen zurück.

Wenn die Netzmaske, die Broadcast-Adresse oder andere Informationen nicht benötigt werden, können Sie die Funktion ` allAddresses()` aufrufen, um nur die IP-Adressen der aktiven Schnittstellen abzurufen.

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

Diese Hilfsfunktion gibt alle auf dem Host-Rechner gefundenen IP-Adressen zurück. Sie entspricht dem Aufruf von ` addressEntries()` für alle von ` allInterfaces()` zurückgegebenen Objekte, die sich im Status „ QNetworkInterface::IsUp “ befinden, um Listen mit ` QNetworkAddressEntry `-Objekten zu erhalten, und dem anschließenden Aufruf von ` QNetworkAddressEntry::ip()` für jedes dieser Objekte.

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

Gibt eine Auflistung aller auf dem Host-Rechner gefundenen Netzwerkschnittstellen zurück. Im Fehlerfall wird eine Liste mit null Elementen zurückgegeben.

QNetworkInterface::InterfaceFlags QNetworkInterface::flags() const

Gibt die mit dieser Netzwerkschnittstelle verbundenen Flags zurück.

QString QNetworkInterface::hardwareAddress() const

Gibt die Low-Level-Hardwareadresse für diese Schnittstelle zurück. Bei Ethernet-Schnittstellen handelt es sich dabei um eine MAC-Adresse in Zeichenfolgendarstellung, getrennt durch Doppelpunkte.

Andere Schnittstellentypen können andere Arten von Hardwareadressen verwenden. Implementierungen sollten sich nicht darauf verlassen, dass diese Funktion eine gültige MAC-Adresse zurückgibt.

Siehe auch ` type()`.

QString QNetworkInterface::humanReadableName() const

Gibt unter Windows den für Menschen lesbaren Namen dieser Netzwerkschnittstelle zurück, z. B. „LAN-Verbindung“, sofern der Name ermittelt werden konnte. Ist dies nicht der Fall, gibt diese Funktion denselben Wert wie die Funktion „ name()“ zurück. Der für Menschen lesbare Name ist ein Name, den der Benutzer in der Windows-Systemsteuerung ändern kann; daher kann er sich während der Ausführung des Programms ändern.

Unter Unix gibt diese Funktion derzeit immer denselben Wert wie ` name()` zurück, da Unix-Systeme keine Konfiguration für für Menschen lesbare Namen speichern.

int QNetworkInterface::index() const

Gibt den Systemindex der Schnittstelle zurück, sofern bekannt. Dabei handelt es sich um eine vom Betriebssystem zugewiesene Ganzzahl zur Identifizierung dieser Schnittstelle, die sich in der Regel nicht ändert. Sie entspricht dem Feld „Scope-ID“ in IPv6-Adressen.

Ist der Index nicht bekannt, gibt diese Funktion 0 zurück.

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

Gibt ein ` QNetworkInterface `-Objekt für die Schnittstelle zurück, deren interne ID ` index` lautet. Netzwerkschnittstellen verfügen über eine eindeutige Kennung, den sogenannten „Schnittstellenindex“, um sie von anderen Schnittstellen im System zu unterscheiden. Häufig wird dieser Wert fortlaufend vergeben, sodass Schnittstellen, die entfernt und anschließend wieder hinzugefügt werden, jedes Mal einen anderen Wert erhalten.

Dieser Index ist auch im Feld „Scope-ID“ der IPv6-Adresse zu finden.

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

Gibt ein ` QNetworkInterface `-Objekt für die Schnittstelle mit dem Namen ` name` zurück. Falls keine solche Schnittstelle existiert, gibt diese Funktion ein ungültiges ` QNetworkInterface `-Objekt zurück.

Die Zeichenkette name kann entweder ein tatsächlicher Schnittstellenname (wie „eth0“ oder „en1“) oder ein Schnittstellenindex in Zeichenkettenform („1“, „2“ usw.) sein.

Siehe auch name() und isValid().

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

Gibt den Index der Schnittstelle mit dem Namen „ name “ zurück oder 0, falls keine Schnittstelle mit diesem Namen vorhanden ist. Diese Funktion sollte das gleiche Ergebnis wie der folgende Code liefern, wird aber wahrscheinlich schneller ausgeführt.

    QNetworkInterface::interfaceFromName(name).index()

Siehe auch „ interfaceFromName()“, „ interfaceNameFromIndex()“ und „ QNetworkDatagram::interfaceIndex()“.

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

Gibt den Namen der Schnittstelle zurück, deren Index „ index “ lautet, oder eine leere Zeichenkette, falls keine Schnittstelle mit diesem Index vorhanden ist. Diese Funktion sollte das gleiche Ergebnis liefern wie der folgende Code, wird aber wahrscheinlich schneller ausgeführt.

    QNetworkInterface::interfaceFromIndex(index).name()

Siehe auch interfaceFromIndex(), interfaceIndexFromName() und QNetworkDatagram::interfaceIndex().

bool QNetworkInterface::isValid() const

Gibt „ true “ zurück, wenn dieses „ QNetworkInterface “-Objekt gültige Informationen zu einer Netzwerkschnittstelle enthält.

int QNetworkInterface::maximumTransmissionUnit() const

Gibt die maximale Übertragungseinheit dieser Schnittstelle zurück, sofern bekannt, andernfalls 0.

Die maximale Übertragungseinheit ist das größte Paket, das über diese Schnittstelle gesendet werden kann, ohne dass es zu einer Fragmentierung auf Verbindungsebene kommt. Anwendungen können diesen Wert verwenden, um die Größe der Nutzlast zu berechnen, die in ein nicht fragmentiertes UDP-Datagramm passt. Denken Sie daran, die Größen der bei Ihrer Kommunikation über die Schnittstelle verwendeten Header abzuziehen, z. B. TCP (20 Byte) oder UDP (12), IPv4 (20) oder IPv6 (40, sofern keine Form der Header-Komprimierung verwendet wird), wenn Sie berechnen, wie groß die Nutzdaten sein können, die Sie übertragen können. Beachten Sie außerdem, dass die MTU entlang des gesamten Pfades (die Pfad-MTU) zum Ziel kleiner sein kann als die MTU der Schnittstelle.

Siehe auch QUdpSocket.

QString QNetworkInterface::name() const

Gibt den Namen dieser Netzwerkschnittstelle zurück. Auf Unix-Systemen handelt es sich dabei um eine Zeichenkette, die den Typ der Schnittstelle und optional eine fortlaufende Nummer enthält, beispielsweise „eth0“, „lo“ oder „pcn0“. Unter Windows ist es eine interne ID, die vom Benutzer nicht geändert werden kann.

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

Tauscht diese Netzwerk-Schnittstelleninstanz gegen „ other “ aus. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.

QNetworkInterface::InterfaceType QNetworkInterface::type() const

Gibt den Typ dieser Schnittstelle zurück, sofern dieser ermittelt werden konnte. Konnte der Typ nicht ermittelt werden, gibt diese Funktion „ QNetworkInterface::Unknown “ zurück.

Siehe auch ` hardwareAddress()`.

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

Kopiert den Inhalt des Objekts „ QNetworkInterface “, das in „ other “ enthalten ist, in dieses Objekt.

Verwandte Nicht-Mitglieder

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

Schreibt die „ QNetworkInterface “ networkInterface in den Stream und gibt eine Referenz auf den „ debug “-Stream zurück.

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