QNetworkInterface Class
La classe `QNetworkInterface` fournit la liste des adresses IP et des interfaces réseau de l'hôte. En savoir plus...
| En-tête : | #include <QNetworkInterface> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake : | QT += network |
- Liste de tous les membres, y compris les membres hérités
- QNetworkInterface fait partie de l'API de programmation réseau et des classes implicitement partagées.
Remarque : toutes les fonctions de cette classe sont réentrantes.
Types publics
| enum | InterfaceFlag { IsUp, IsRunning, CanBroadcast, IsLoopBack, IsPointToPoint, CanMulticast } |
| flags | InterfaceFlags |
| enum | InterfaceType { Unknown, Loopback, Virtual, Ethernet, Wifi, …, Ieee1394 } |
Fonctions publiques
| 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) |
Membres publics statiques
| QList<QHostAddress> | allAddresses() |
| QList<QNetworkInterface> | allInterfaces() |
| QNetworkInterface | interfaceFromIndex(int index) |
| QNetworkInterface | interfaceFromName(const QString &name) |
| int | interfaceIndexFromName(const QString &name) |
| QString | interfaceNameFromIndex(int index) |
Éléments non membres associés
| QDebug | operator<<(QDebug debug, const QNetworkInterface &networkInterface) |
Description détaillée
QNetworkInterface représente une interface réseau connectée à l'hôte sur lequel le programme est exécuté. Chaque interface réseau peut contenir zéro ou plusieurs adresses IP, chacune pouvant être associée à un masque de réseau et/ou à une adresse de diffusion. La liste de ces trios peut être obtenue à l'aide de la fonction ` addressEntries()`. Sinon, lorsque le masque de réseau, les adresses de diffusion ou d'autres informations ne sont pas nécessaires, utilisez la fonction de commodité ` allAddresses()` pour obtenir uniquement les adresses IP des interfaces actives.
QNetworkInterface renvoie également l’adresse matérielle de l’interface via la fonction hardwareAddress().
Tous les systèmes d’exploitation ne prennent pas en charge toutes les fonctionnalités. Seules les adresses IPv4 sont garanties d’être répertoriées par cette classe sur toutes les plateformes. En particulier, la liste des adresses IPv6 n’est prise en charge que sous Windows, Linux, macOS et les BSD. De même, le type d’interface renvoyé par type() peut ne pas être disponible sur toutes les plateformes.
Remarque : sous Android, le type d'interface est toujours indiqué comme « Unknown », car la plateforme ne fournit pas d'informations sur le type de matériel pour les interfaces physiques.
Voir également QNetworkAddressEntry.
Documentation sur les types de membres
enum QNetworkInterface::InterfaceFlag
flags QNetworkInterface::InterfaceFlags
Spécifie les indicateurs associés à cette interface réseau. Les valeurs possibles sont les suivantes :
| Constante | Valeur | Description |
|---|---|---|
QNetworkInterface::IsUp | 0x1 | l'interface réseau est « active » – activée par une intervention administrative |
QNetworkInterface::IsRunning | 0x2 | l'interface réseau est opérationnelle : configurée en mode « up » et (généralement) physiquement connectée à un réseau |
QNetworkInterface::CanBroadcast | 0x4 | l'interface réseau fonctionne en mode diffusion |
QNetworkInterface::IsLoopBack | 0x8 | l'interface réseau est une interface de bouclage : c'est-à-dire une interface virtuelle dont la destination est l'ordinateur hôte lui-même |
QNetworkInterface::IsPointToPoint | 0x10 | l'interface réseau est une interface point à point : c'est-à-dire qu'il n'existe qu'une seule autre adresse directement accessible par celle-ci. |
QNetworkInterface::CanMulticast | 0x20 | l'interface réseau prend en charge la multidiffusion |
Notez qu'une interface réseau ne peut pas être à la fois de type diffusion et point à point.
Le type `InterfaceFlags` est un `typedef` pour ` QFlags<InterfaceFlag>`. Il stocke une combinaison OR de valeurs `InterfaceFlag`.
enum QNetworkInterface::InterfaceType
Spécifie le type de matériel (couche PHY, niveau 1 du modèle OSI) correspondant à cette interface, si celui-ci a pu être déterminé. Les types d’interface qui ne figurent pas parmi ceux énumérés ci-dessous seront généralement répertoriés comme « Inconnu », bien que de futures versions de Qt puissent ajouter de nouvelles valeurs d’énumération.
Les valeurs possibles sont :
| Constante | Valeur | Description |
|---|---|---|
QNetworkInterface::Unknown | 0 | Le type d’interface n’a pas pu être déterminé ou ne correspond à aucun des types répertoriés. |
QNetworkInterface::Loopback | 1 | L'interface de bouclage virtuelle, à laquelle sont attribuées les adresses IP de bouclage (127.0.0.1, ::1). |
QNetworkInterface::Virtual | 2 | Un type d’interface identifié comme virtuel, mais qui ne correspond à aucun des autres types possibles. Par exemple, les interfaces de tunnel sont (actuellement) détectées comme des interfaces virtuelles. |
QNetworkInterface::Ethernet | 3 | Les interfaces Ethernet IEEE 802.3, bien que sur de nombreux systèmes, d’autres types d’interfaces IEEE 802 puissent également être détectées comme des interfaces Ethernet (notamment le Wi-Fi). |
QNetworkInterface::Wifi | 8 | Les interfaces Wi-Fi IEEE 802.11. Notez que sur certains systèmes, la commande « QNetworkInterface » peut ne pas être en mesure de distinguer l’Ethernet classique du Wi-Fi et ne renverra pas cette valeur d’énumération. |
QNetworkInterface::Ieee80211 | Wifi | Un alias pour le Wi-Fi. |
QNetworkInterface::CanBus | 5 | Interfaces de bus Controller Area Network (CAN) ISO 11898, généralement présentes sur les systèmes automobiles. |
QNetworkInterface::Fddi | 7 | Interface ANSI X3T12 Fiber Distributed Data Interface, un réseau local par fibres optiques. |
QNetworkInterface::Ppp | 6 | Interfaces de protocole point à point (PPP), établissant une connexion directe entre deux nœuds via une couche de transport inférieure (souvent une liaison série par radio ou une ligne physique). |
QNetworkInterface::Slip | 4 | Interfaces du protocole Internet sur ligne série (SLIP). |
QNetworkInterface::Phonet | 9 | Interfaces utilisant la famille de sockets Linux Phonet, pour la communication avec des modems cellulaires. Consultez la documentation du noyau Linux pour plus d’informations. |
QNetworkInterface::Ieee802154 | 10 | Interfaces de réseau de zone personnelle (PAN) IEEE 802.15.4, autres que 6LoWPAN (voir ci-dessous). |
QNetworkInterface::SixLoWPAN | 11 | Interfaces 6LoWPAN (IPv6 sur réseaux personnels sans fil à faible consommation), qui fonctionnent sur la couche physique IEEE 802.15.4, mais disposent de schémas de compression d’en-tête spécifiques pour IPv6 et UDP. Ce type d’interface est souvent utilisé pour les réseaux maillés. |
QNetworkInterface::Ieee80216 | 12 | Réseau métropolitain sans fil IEEE 802.16, également connu sous le nom commercial « WiMAX ». |
QNetworkInterface::Ieee1394 | 13 | Interfaces IEEE 1394 (également appelées « FireWire »). |
Documentation sur les fonctions-membres
QNetworkInterface::QNetworkInterface()
Crée un objet d'interface réseau vide.
QNetworkInterface::QNetworkInterface(const QNetworkInterface &other)
Crée une copie de l'objet `QNetworkInterface` contenu dans ` other`.
[noexcept] QNetworkInterface::~QNetworkInterface()
Libère les ressources associées à l'objet ` QNetworkInterface `.
QList<QNetworkAddressEntry> QNetworkInterface::addressEntries() const
Renvoie la liste des adresses IP attribuées à cette interface, ainsi que les masques de réseau et les adresses de diffusion associés.
Si le masque de réseau, l'adresse de diffusion ou d'autres informations ne sont pas nécessaires, vous pouvez appeler la fonction ` allAddresses()` pour obtenir uniquement les adresses IP des interfaces actives.
[static] QList<QHostAddress> QNetworkInterface::allAddresses()
Cette fonction pratique renvoie toutes les adresses IP détectées sur la machine hôte. Elle revient à appeler ` addressEntries()` sur tous les objets renvoyés par ` allInterfaces()` qui se trouvent dans l'état « QNetworkInterface::IsUp » afin d'obtenir des listes d'objets ` QNetworkAddressEntry `, puis à appeler ` QNetworkAddressEntry::ip()` sur chacun d'entre eux.
[static] QList<QNetworkInterface> QNetworkInterface::allInterfaces()
Renvoie la liste de toutes les interfaces réseau détectées sur la machine hôte. En cas d'échec, elle renvoie une liste vide.
QNetworkInterface::InterfaceFlags QNetworkInterface::flags() const
Renvoie les indicateurs associés à cette interface réseau.
QString QNetworkInterface::hardwareAddress() const
Renvoie l'adresse matérielle de bas niveau de cette interface. Sur les interfaces Ethernet, il s'agit d'une adresse MAC sous forme de chaîne de caractères, séparée par des deux-points.
D'autres types d'interfaces peuvent utiliser d'autres types d'adresses matérielles. Les implémentations ne doivent pas supposer que cette fonction renvoie une adresse MAC valide.
Voir également type().
QString QNetworkInterface::humanReadableName() const
Renvoie le nom lisible par l'utilisateur de cette interface réseau sous Windows, tel que « Connexion au réseau local », si ce nom a pu être déterminé. Si ce n'est pas le cas, cette fonction renvoie la même valeur que la fonction ` name()`. Le nom lisible par l'utilisateur est un nom que l'utilisateur peut modifier dans le Panneau de configuration de Windows ; il peut donc changer pendant l'exécution du programme.
Sous Unix, cette fonction renvoie actuellement toujours la même valeur que name(), car les systèmes Unix ne stockent pas de configuration pour les noms lisibles par l'utilisateur.
int QNetworkInterface::index() const
Renvoie l'index système de l'interface, s'il est connu. Il s'agit d'un entier attribué par le système d'exploitation pour identifier cette interface ; il ne change généralement pas. Il correspond au champ « scope ID » des adresses IPv6.
Si l'index n'est pas connu, cette fonction renvoie 0.
[static] QNetworkInterface QNetworkInterface::interfaceFromIndex(int index)
Renvoie un objet ` QNetworkInterface ` correspondant à l'interface dont l'identifiant interne est ` index`. Les interfaces réseau possèdent un identifiant unique appelé « index d'interface », qui permet de les distinguer des autres interfaces du système. Souvent, cette valeur est attribuée de manière progressive ; ainsi, les interfaces qui sont supprimées puis rajoutées se voient attribuer une valeur différente à chaque fois.
Cet index figure également dans le champ « scope ID » de l'adresse IPv6.
[static] QNetworkInterface QNetworkInterface::interfaceFromName(const QString &name)
Renvoie un objet ` QNetworkInterface ` correspondant à l'interface nommée ` name`. Si cette interface n'existe pas, cette fonction renvoie un objet ` QNetworkInterface ` non valide.
La chaîne name peut être soit un nom d’interface réel (tel que « eth0 » ou « en1 »), soit un index d’interface sous forme de chaîne (« 1 », « 2 », etc.).
Voir également name() et isValid().
[static] int QNetworkInterface::interfaceIndexFromName(const QString &name)
Renvoie l'index de l'interface dont le nom est « name » ou 0 s'il n'existe aucune interface portant ce nom. Cette fonction devrait produire le même résultat que le code suivant, mais s'exécutera probablement plus rapidement.
QNetworkInterface::interfaceFromName(name).index()Voir également interfaceFromName(), interfaceNameFromIndex() et QNetworkDatagram::interfaceIndex().
[static] QString QNetworkInterface::interfaceNameFromIndex(int index)
Renvoie le nom de l'interface dont l'index est index ou une chaîne vide s'il n'existe aucune interface portant cet index. Cette fonction devrait produire le même résultat que le code suivant, mais s'exécutera probablement plus rapidement.
QNetworkInterface::interfaceFromIndex(index).name()Voir également interfaceFromIndex(), interfaceIndexFromName() et QNetworkDatagram::interfaceIndex().
bool QNetworkInterface::isValid() const
Renvoie « true » si cet objet « QNetworkInterface » contient des informations valides concernant une interface réseau.
int QNetworkInterface::maximumTransmissionUnit() const
Renvoie l'unité de transmission maximale sur cette interface, si elle est connue, ou 0 dans le cas contraire.
L'unité de transmission maximale correspond au plus grand paquet pouvant être envoyé sur cette interface sans entraîner de fragmentation au niveau de la liaison. Les applications peuvent utiliser cette valeur pour calculer la taille de la charge utile pouvant tenir dans un datagramme UDP non fragmenté. N’oubliez pas de soustraire les tailles des en-têtes utilisés dans vos communications sur cette interface, par exemple TCP (20 octets) ou UDP (12), IPv4 (20) ou IPv6 (40, en l’absence de compression des en-têtes), lorsque vous calculez la taille de la charge utile que vous pouvez transmettre. Notez également que la MTU sur l'ensemble du chemin (la MTU de chemin) vers la destination peut être inférieure à la MTU de l'interface.
Voir également QUdpSocket.
QString QNetworkInterface::name() const
Renvoie le nom de cette interface réseau. Sur les systèmes Unix, il s'agit d'une chaîne de caractères contenant le type de l'interface et, éventuellement, un numéro d'ordre, tel que « eth0 », « lo » ou « pcn0 ». Sous Windows, il s'agit d'un identifiant interne qui ne peut pas être modifié par l'utilisateur.
[noexcept] void QNetworkInterface::swap(QNetworkInterface &other)
Permute cette instance d'interface réseau avec celle de other. Cette opération est très rapide et ne rencontre jamais d'échec.
QNetworkInterface::InterfaceType QNetworkInterface::type() const
Renvoie le type de cette interface, s'il a pu être déterminé. S'il n'a pas pu être déterminé, cette fonction renvoie « QNetworkInterface::Unknown ».
Voir également hardwareAddress().
QNetworkInterface &QNetworkInterface::operator=(const QNetworkInterface &other)
Copie le contenu de l'objet « QNetworkInterface » contenu dans « other » dans celui-ci.
Éléments non membres associés
QDebug operator<<(QDebug debug, const QNetworkInterface &networkInterface)
Écrit l'QNetworkInterface networkInterface dans le flux et renvoie une référence au flux 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.