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 |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QNetworkInterface ist Teil der Netzwerkprogrammier-API und der implizit gemeinsam genutzten Klassen.
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) |
Verwandte Nicht-Mitglieder
| 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:
| Konstante | Wert | Beschreibung |
|---|---|---|
QNetworkInterface::IsUp | 0x1 | Die Netzwerkschnittstelle ist „up“ – durch eine administrative Maßnahme aktiviert |
QNetworkInterface::IsRunning | 0x2 | Die Netzwerkschnittstelle ist betriebsbereit: auf „up“ konfiguriert und (in der Regel) physisch mit einem Netzwerk verbunden |
QNetworkInterface::CanBroadcast | 0x4 | Die Netzwerkschnittstelle arbeitet im Broadcast-Modus |
QNetworkInterface::IsLoopBack | 0x8 | Die Netzwerkschnittstelle ist eine Loopback-Schnittstelle: Das heißt, es handelt sich um eine virtuelle Schnittstelle, deren Ziel der Host-Computer selbst ist |
QNetworkInterface::IsPointToPoint | 0x10 | Die Netzwerkschnittstelle ist eine Punkt-zu-Punkt-Schnittstelle: Das heißt, es gibt eine einzige andere Adresse, die von ihr direkt erreicht werden kann. |
QNetworkInterface::CanMulticast | 0x20 | Die 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:
| Konstante | Wert | Beschreibung |
|---|---|---|
QNetworkInterface::Unknown | 0 | Der Schnittstellentyp konnte nicht ermittelt werden oder gehört nicht zu den anderen aufgeführten Typen. |
QNetworkInterface::Loopback | 1 | Die virtuelle Loopback-Schnittstelle, der die Loopback-IP-Adressen (127.0.0.1, ::1) zugewiesen sind. |
QNetworkInterface::Virtual | 2 | Ein Schnittstellentyp, der als virtuell identifiziert wurde, aber keinem der anderen möglichen Typen entspricht. Beispielsweise werden Tunnelschnittstellen (derzeit) als virtuelle Schnittstellen erkannt. |
QNetworkInterface::Ethernet | 3 | IEEE 802.3-Ethernet-Schnittstellen, obwohl auf vielen Systemen auch andere Arten von IEEE 802-Schnittstellen als Ethernet erkannt werden können (insbesondere WLAN). |
QNetworkInterface::Wifi | 8 | IEEE 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::Ieee80211 | Wifi | Ein Alias für WLAN. |
QNetworkInterface::CanBus | 5 | ISO 11898 Controller Area Network-Bus-Schnittstellen, die üblicherweise in Fahrzeugsystemen zu finden sind. |
QNetworkInterface::Fddi | 7 | ANSI X3T12 Fiber Distributed Data Interface, ein lokales Netzwerk über Glasfaser. |
QNetworkInterface::Ppp | 6 | Point-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::Slip | 4 | Schnittstellen nach dem Serial Line Internet Protocol. |
QNetworkInterface::Phonet | 9 | Schnittstellen, die die Linux-Phonet-Socket-Familie verwenden, zur Kommunikation mit Mobilfunkmodems. Weitere Informationen finden Sie in der Dokumentation zum Linux-Kernel. |
QNetworkInterface::Ieee802154 | 10 | IEEE 802.15.4-Personal-Area-Network-Schnittstellen, mit Ausnahme von 6LoWPAN (siehe unten). |
QNetworkInterface::SixLoWPAN | 11 | 6LoWPAN-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::Ieee80216 | 12 | IEEE 802.16 Wireless Metropolitan Area Network, auch unter dem kommerziellen Namen „WiMAX“ bekannt. |
QNetworkInterface::Ieee1394 | 13 | IEEE 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.