Sur cette page

QNetworkAddressEntry Class

La classe `QNetworkAddressEntry` stocke une adresse IP prise en charge par une interface réseau, ainsi que le masque de réseau et l'adresse de diffusion qui lui sont associés. En savoir plus...

En-tête : #include <QNetworkAddressEntry>
CMake : find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake : QT += network

Remarque : toutes les fonctions de cette classe sont réentrantes.

Types publics

enum DnsEligibilityStatus { DnsEligibilityUnknown, DnsEligible, DnsIneligible }

Fonctions publiques

QNetworkAddressEntry()
QNetworkAddressEntry(const QNetworkAddressEntry &other)
~QNetworkAddressEntry()
QHostAddress broadcast() const
void clearAddressLifetime()
QNetworkAddressEntry::DnsEligibilityStatus dnsEligibility() const
QHostAddress ip() const
bool isLifetimeKnown() const
bool isPermanent() const
bool isTemporary() const
QHostAddress netmask() const
QDeadlineTimer preferredLifetime() const
int prefixLength() const
void setAddressLifetime(QDeadlineTimer preferred, QDeadlineTimer validity)
void setBroadcast(const QHostAddress &newBroadcast)
void setDnsEligibility(QNetworkAddressEntry::DnsEligibilityStatus status)
void setIp(const QHostAddress &newIp)
void setNetmask(const QHostAddress &newNetmask)
void setPrefixLength(int length)
void swap(QNetworkAddressEntry &other)
QDeadlineTimer validityLifetime() const
bool operator!=(const QNetworkAddressEntry &other) const
QNetworkAddressEntry &operator=(const QNetworkAddressEntry &other)
bool operator==(const QNetworkAddressEntry &other) const
(since 6.2) QDebug operator<<(QDebug debug, const QNetworkAddressEntry &entry)

Description détaillée

Chaque interface réseau peut contenir zéro ou plusieurs adresses IP, qui peuvent à leur tour être associées à un masque de réseau et/ou à une adresse de diffusion (selon la prise en charge par le système d'exploitation).

Cette classe représente un tel groupe.

Documentation sur les types de membres

enum QNetworkAddressEntry::DnsEligibilityStatus

Cette énumération indique si une adresse hôte donnée peut être publiée dans le système de noms de domaine (DNS) ou dans d’autres mécanismes similaires de résolution de noms. En général, une adresse peut être publiée si elle permet de joindre cette machine pendant une durée indéterminée, même si elle n’est pas nécessairement permanente. Par exemple, les adresses obtenues via DHCP sont souvent éligibles, mais ce n’est pas le cas des adresses IPv6 temporaires générées par cryptographie.

ConstanteValeurDescription
QNetworkAddressEntry::DnsEligibilityUnknown-1Qt et le système d’exploitation n’ont pas pu déterminer si cette adresse devait être publiée ou non. L’application devra peut-être recourir à d’autres heuristiques si elle ne parvient pas à trouver d’adresses éligibles.
QNetworkAddressEntry::DnsEligible1Cette adresse est éligible à la publication dans le DNS.
QNetworkAddressEntry::DnsIneligible0Cette adresse ne doit pas être publiée dans le DNS et ne doit pas être transmise à des tiers, sauf peut-être en tant qu’adresse source d’un paquet sortant.

Voir également dnsEligibility() et setDnsEligibility().

Documentation des fonctions membres

QNetworkAddressEntry::QNetworkAddressEntry()

Crée un objet QNetworkAddressEntry vide.

QNetworkAddressEntry::QNetworkAddressEntry(const QNetworkAddressEntry &other)

Crée un objet `QNetworkAddressEntry` qui est une copie de l'objet ` other`.

[noexcept] QNetworkAddressEntry::~QNetworkAddressEntry()

Supprime cet objet « QNetworkAddressEntry ».

QHostAddress QNetworkAddressEntry::broadcast() const

Renvoie l'adresse de diffusion associée à l'adresse IPv4 et au masque de réseau. Elle peut généralement être déduite de ces deux éléments en mettant à 1 les bits de l'adresse IP où le masque de réseau contient un 0. (En d'autres termes, en effectuant une opération OR bit à bit entre l'adresse IP et l'inverse du masque de réseau)

Ce membre est toujours vide pour les adresses IPv6, car le concept de diffusion a été abandonné dans ce système au profit de la multidiffusion. En particulier, le groupe d'hôtes correspondant à tous les nœuds du réseau local est accessible via le groupe de multidiffusion spécial « tous les nœuds » (adresse FF02::1).

Voir également setBroadcast().

void QNetworkAddressEntry::clearAddressLifetime()

Réinitialise à la fois la durée de vie préférentielle et la durée de vie valide pour cette adresse. Après cet appel, la fonction isLifetimeKnown() renverra la valeur « false ».

Voir également preferredLifetime(), validityLifetime(), isLifetimeKnown() et setAddressLifetime().

QNetworkAddressEntry::DnsEligibilityStatus QNetworkAddressEntry::dnsEligibility() const

Indique si cette adresse peut être publiée dans le système de noms de domaine (DNS) ou dans des mécanismes de résolution de noms similaires.

En général, une adresse est éligible à la publication s'il s'agit d'une adresse à laquelle cette machine restera joignable pendant une durée indéterminée, même si elle n'est pas nécessairement permanente. Par exemple, les adresses obtenues via DHCP sont souvent éligibles, mais ce n'est pas le cas des adresses IPv6 temporaires générées par cryptographie.

Sur certains systèmes, la fonction ` QNetworkInterface ` devra déterminer de manière heuristique quelles adresses sont éligibles.

Voir également isLifetimeKnown(), isPermanent() et setDnsEligibility().

QHostAddress QNetworkAddressEntry::ip() const

Cette fonction renvoie une adresse IPv4 ou IPv6 détectée sur une interface réseau.

Voir également la fonction ` setIp()`.

bool QNetworkAddressEntry::isLifetimeKnown() const

Renvoie « true » si la durée de vie de l'adresse est connue, « false » dans le cas contraire. Si la durée de vie n'est pas connue, les fonctions « preferredLifetime() » et « validityLifetime() » renvoient toutes deux « QDeadlineTimer::Forever ».

Voir également preferredLifetime(), validityLifetime(), setAddressLifetime() et clearAddressLifetime().

bool QNetworkAddressEntry::isPermanent() const

Renvoie « true » si cette adresse est permanente sur cette interface, et « false » si elle est temporaire. Une adresse permanente est une adresse sans date d'expiration, souvent statique (configurée manuellement).

Si cette information n’a pas pu être déterminée, cette fonction renvoie « true ».

Remarque : selon le système d’exploitation et l’outil de configuration réseau, il est possible qu’une adresse temporaire soit interprétée comme permanente si l’outil n’a pas correctement transmis les détails au système d’exploitation.

Voir également isLifetimeKnown(), validityLifetime() et isTemporary().

bool QNetworkAddressEntry::isTemporary() const

Renvoie « true » si cette adresse est temporaire sur cette interface, et « false » si elle est permanente.

Voir également isLifetimeKnown(), validityLifetime() et isPermanent().

QHostAddress QNetworkAddressEntry::netmask() const

Renvoie le masque de réseau associé à l'adresse IP. Le masque de réseau est exprimé sous la forme d'une adresse IP, par exemple 255.255.0.0.

Pour les adresses IPv6, la longueur du préfixe est convertie en une adresse dont le nombre de bits mis à 1 est égal à la longueur du préfixe. Pour une longueur de préfixe de 64 bits (la valeur la plus courante), le masque de réseau sera exprimé sous la forme d'un QHostAddress contenant l'adresse FFFF:FFFF:FFFF:FFFF::

Voir également setNetmask() et prefixLength().

QDeadlineTimer QNetworkAddressEntry::preferredLifetime() const

Renvoie la date limite à laquelle cette adresse deviendra obsolète (ne sera plus privilégiée), si elle est connue. Si la durée de vie de l'adresse n'est pas connue (voir isLifetimeKnown()), cette fonction renvoie toujours QDeadlineTimer::Forever.

Tant qu’une adresse est privilégiée, elle peut être utilisée par le système d’exploitation comme adresse source pour les nouveaux paquets sortants. Une fois qu’elle devient obsolète, elle reste valide pour les paquets entrants pendant un certain temps encore, jusqu’à ce qu’elle soit finalement supprimée (voir validityLifetime()).

Voir également validityLifetime(), isLifetimeKnown(), setAddressLifetime() et clearAddressLifetime().

int QNetworkAddressEntry::prefixLength() const

Renvoie la longueur du préfixe de cette adresse IP. La longueur du préfixe correspond au nombre de bits mis à 1 dans le masque de réseau (voir netmask()). Pour les adresses IPv4, la valeur est comprise entre 0 et 32. Pour les adresses IPv6, elle est comprise entre 0 et 128 et constitue la forme privilégiée de représentation des adresses.

Cette fonction renvoie -1 si la longueur du préfixe n'a pas pu être déterminée (c'est-à-dire si netmask() renvoie un QHostAddress() nul).

Voir également setPrefixLength() et netmask().

void QNetworkAddressEntry::setAddressLifetime(QDeadlineTimer preferred, QDeadlineTimer validity)

Définit respectivement les durées de vie préférée et valide de cette adresse aux valeurs indiquées sur preferred et validity. Après cet appel, la fonction isLifetimeKnown() renverra true, même si les deux paramètres sont QDeadlineTimer::Forever.

Voir également preferredLifetime(), validityLifetime(), isLifetimeKnown() et clearAddressLifetime().

void QNetworkAddressEntry::setBroadcast(const QHostAddress &newBroadcast)

Définit l'adresse IP de diffusion de cet objet QNetworkAddressEntry sur newBroadcast.

Voir également broadcast().

void QNetworkAddressEntry::setDnsEligibility(QNetworkAddressEntry::DnsEligibilityStatus status)

Définit l'indicateur d'éligibilité DNS de cette adresse sur « status ».

Voir également dnsEligibility().

void QNetworkAddressEntry::setIp(const QHostAddress &newIp)

Définit l'adresse IP contenue dans l'objet QNetworkAddressEntry sur newIp.

Voir aussi ip().

void QNetworkAddressEntry::setNetmask(const QHostAddress &newNetmask)

Définit le masque de réseau contenu dans cet objet QNetworkAddressEntry sur newNetmask. La définition du masque de réseau entraîne également la mise à jour de la longueur du préfixe afin qu'elle corresponde au nouveau masque de réseau.

Voir également netmask() et setPrefixLength().

void QNetworkAddressEntry::setPrefixLength(int length)

Définit la longueur du préfixe de cette adresse IP sur length. La valeur de length doit être valide pour ce type d'adresse IP : comprise entre 0 et 32 pour les adresses IPv4, et entre 0 et 128 pour les adresses IPv6. La définition d'une valeur non valide équivaut à la valeur -1, ce qui signifie « aucune longueur de préfixe ».

La définition de la longueur du préfixe définit également le masque de réseau (voir netmask()).

Voir également prefixLength() et setNetmask().

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

Permet d'échanger cette instance d'entrée d'adresse réseau contre celle de other. Cette opération est très rapide et ne rencontre jamais d'échec.

QDeadlineTimer QNetworkAddressEntry::validityLifetime() const

Renvoie, si elle est connue, la date limite à laquelle cette adresse deviendra invalide et sera supprimée de la pile réseau. Si la durée de vie de l’adresse n’est pas connue (voir isLifetimeKnown()), cette fonction renvoie toujours QDeadlineTimer::Forever.

Tant qu’une adresse est valide, elle sera acceptée par le système d’exploitation comme adresse de destination valide pour cette machine. Son utilisation comme adresse source pour les nouveaux paquets sortants est régie, entre autres règles, par la durée de vie préférentielle (voir preferredLifetime()).

Voir également preferredLifetime(), isLifetimeKnown(), setAddressLifetime() et clearAddressLifetime().

bool QNetworkAddressEntry::operator!=(const QNetworkAddressEntry &other) const

Renvoie « true » si cette entrée d’adresse réseau est différente de « other ».

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

Crée une copie de l'objet « QNetworkAddressEntry » other.

bool QNetworkAddressEntry::operator==(const QNetworkAddressEntry &other) const

Renvoie « true » si cette entrée d'adresse réseau est identique à « other ».

Personnes non membres associées

[since 6.2] QDebug operator<<(QDebug debug, const QNetworkAddressEntry &entry)

Écrit le fichier QNetworkAddressEntry entry dans le flux et renvoie une référence au flux debug.

Cette fonction a été introduite dans Qt 6.2.

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