QNetworkAddressEntry Class
Die Klasse QNetworkAddressEntry speichert eine IP-Adresse, die von einer Netzwerkschnittstelle unterstützt wird, zusammen mit der zugehörigen Netzmaske und Broadcast-Adresse. Mehr...
Kopfzeile: | #include <QNetworkAddressEntry> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake: | QT += network |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QNetworkAddressEntry ist Teil von Network Programming API und Implicitly Shared Classes.
Hinweis: Alle Funktionen in dieser Klasse sind reentrant.
Öffentliche Typen
enum | DnsEligibilityStatus { DnsEligibilityUnknown, DnsEligible, DnsIneligible } |
Öffentliche Funktionen
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 |
Verwandte Nicht-Mitglieder
(since 6.2) QDebug | operator<<(QDebug debug, const QNetworkAddressEntry &entry) |
Detaillierte Beschreibung
Jede Netzwerkschnittstelle kann null oder mehr IP-Adressen enthalten, die wiederum mit einer Netzmaske und/oder einer Broadcast-Adresse verbunden sein können (je nach Unterstützung durch das Betriebssystem).
Diese Klasse repräsentiert eine solche Gruppe.
Mitgliedstyp Dokumentation
enum QNetworkAddressEntry::DnsEligibilityStatus
Diese Aufzählung gibt an, ob eine bestimmte Host-Adresse für die Veröffentlichung im Domain Name System (DNS) oder anderen ähnlichen Namensauflösungsmechanismen geeignet ist. Im Allgemeinen ist eine Adresse für die Veröffentlichung geeignet, wenn es sich um eine Adresse handelt, unter der dieser Rechner für eine unbestimmte Zeit erreichbar ist, obwohl sie nicht permanent sein muss. So sind z. B. Adressen, die über DHCP bezogen werden, häufig geeignet, kryptografisch erzeugte temporäre IPv6-Adressen jedoch nicht.
Konstante | Wert | Beschreibung |
---|---|---|
QNetworkAddressEntry::DnsEligibilityUnknown | -1 | Qt und das Betriebssystem konnten nicht feststellen, ob diese Adresse veröffentlicht werden soll oder nicht. Die Anwendung muss eventuell weitere Heuristiken anwenden, wenn sie keine geeigneten Adressen finden kann. |
QNetworkAddressEntry::DnsEligible | 1 | Diese Adresse ist für die Veröffentlichung im DNS geeignet. |
QNetworkAddressEntry::DnsIneligible | 0 | Diese Adresse sollte nicht im DNS veröffentlicht werden und sollte nicht an andere Parteien übermittelt werden, außer vielleicht als Quelladresse eines ausgehenden Pakets. |
Siehe auch dnsEligibility() und setDnsEligibility().
Dokumentation der Mitgliedsfunktionen
QNetworkAddressEntry::QNetworkAddressEntry()
Konstruiert ein leeres QNetworkAddressEntry-Objekt.
QNetworkAddressEntry::QNetworkAddressEntry(const QNetworkAddressEntry &other)
Konstruiert ein QNetworkAddressEntry-Objekt, das eine Kopie des Objekts other ist.
[noexcept]
QNetworkAddressEntry::~QNetworkAddressEntry()
Zerstört dieses QNetworkAddressEntry Objekt.
QHostAddress QNetworkAddressEntry::broadcast() const
Gibt die mit der IPv4-Adresse und der Netzmaske verbundene Broadcast-Adresse zurück. Sie kann in der Regel aus diesen beiden abgeleitet werden, indem die Bits der IP-Adresse, die in der Netzmaske eine 0 enthalten, auf 1 gesetzt werden (mit anderen Worten: durch bitweise ODER-Verknüpfung der IP-Adresse mit dem Kehrwert der Netzmaske).
Bei IPv6-Adressen ist dieses Element immer leer, da das Konzept des Broadcasts in diesem System zugunsten des Multicasts aufgegeben wurde. Insbesondere kann die Gruppe der Hosts, die allen Knoten des lokalen Netzes entspricht, über die spezielle Multicast-Gruppe "all-nodes" (Adresse FF02::1) erreicht werden.
Siehe auch setBroadcast().
void QNetworkAddressEntry::clearAddressLifetime()
Setzt sowohl die bevorzugte als auch die gültige Lebenszeit für diese Adresse zurück. Nach diesem Aufruf gibt isLifetimeKnown() false
zurück.
Siehe auch preferredLifetime(), validityLifetime(), isLifetimeKnown(), und setAddressLifetime().
QNetworkAddressEntry::DnsEligibilityStatus QNetworkAddressEntry::dnsEligibility() const
Gibt zurück, ob diese Adresse für die Veröffentlichung im Domain Name System (DNS) oder ähnlichen Namensauflösungsmechanismen geeignet ist.
Im Allgemeinen ist eine Adresse für die Veröffentlichung geeignet, wenn es sich um eine Adresse handelt, unter der dieser Rechner auf unbestimmte Zeit erreicht werden kann, obwohl sie nicht permanent sein muss. Zum Beispiel sind Adressen, die über DHCP bezogen werden, oft geeignet, aber kryptografisch erzeugte temporäre IPv6-Adressen sind es nicht.
Auf einigen Systemen muss QNetworkInterface heuristisch ermitteln, welche Adressen in Frage kommen.
Siehe auch isLifetimeKnown(), isPermanent(), und setDnsEligibility().
QHostAddress QNetworkAddressEntry::ip() const
Diese Funktion gibt eine gefundene IPv4- oder IPv6-Adresse zurück, die in einer Netzwerkschnittstelle gefunden wurde.
Siehe auch setIp().
bool QNetworkAddressEntry::isLifetimeKnown() const
Gibt true
zurück, wenn die Lebensdauer der Adresse bekannt ist, andernfalls false
. Wenn die Lebensdauer nicht bekannt ist, geben sowohl preferredLifetime() als auch validityLifetime() QDeadlineTimer::Forever zurück.
Siehe auch preferredLifetime(), validityLifetime(), setAddressLifetime(), und clearAddressLifetime().
bool QNetworkAddressEntry::isPermanent() const
Gibt true
zurück, wenn es sich um eine permanente Adresse auf dieser Schnittstelle handelt, false
, wenn es sich um eine temporäre Adresse handelt. Eine permanente Adresse ist eine Adresse, die keine Verfallszeit hat und oft statisch (manuell konfiguriert) ist.
Konnte diese Information nicht ermittelt werden, gibt diese Funktion true
zurück.
Hinweis: Je nach Betriebssystem und Netzwerkkonfigurationsprogramm kann eine temporäre Adresse als permanent interpretiert werden, wenn das Programm dem Betriebssystem die Details nicht korrekt mitgeteilt hat.
Siehe auch isLifetimeKnown(), validityLifetime(), und isTemporary().
bool QNetworkAddressEntry::isTemporary() const
Gibt true
zurück, wenn diese Adresse auf dieser Schnittstelle temporär ist, false
, wenn sie permanent ist.
Siehe auch isLifetimeKnown(), validityLifetime(), und isPermanent().
QHostAddress QNetworkAddressEntry::netmask() const
Gibt die mit der IP-Adresse verbundene Netzmaske zurück. Die Netzmaske wird in Form einer IP-Adresse ausgedrückt, z. B. 255.255.0.0.
Bei IPv6-Adressen wird die Präfixlänge in eine Adresse umgewandelt, bei der die Anzahl der auf 1 gesetzten Bits gleich der Präfixlänge ist. Bei einer Präfixlänge von 64 Bits (dem gebräuchlichsten Wert) wird die Netzmaske als QHostAddress mit der Adresse FFFF:FFFF:FFFF:FFFF: ausgedrückt:
Siehe auch setNetmask() und prefixLength().
QDeadlineTimer QNetworkAddressEntry::preferredLifetime() const
Gibt die Frist zurück, zu der diese Adresse veraltet (nicht mehr bevorzugt) ist, falls bekannt. Wenn die Lebensdauer der Adresse nicht bekannt ist (siehe isLifetimeKnown()), gibt diese Funktion immer QDeadlineTimer::Forever zurück.
Solange eine Adresse bevorzugt ist, kann sie vom Betriebssystem als Quelladresse für neue, ausgehende Pakete verwendet werden. Nachdem sie veraltet ist, bleibt sie für eingehende Pakete noch eine Weile gültig, bis sie endgültig entfernt wird (siehe validityLifetime()).
Siehe auch validityLifetime(), isLifetimeKnown(), setAddressLifetime(), und clearAddressLifetime().
int QNetworkAddressEntry::prefixLength() const
Gibt die Präfixlänge dieser IP-Adresse zurück. Die Präfixlänge entspricht der Anzahl der auf 1 gesetzten Bits in der Netzmaske (siehe netmask()). Bei IPv4-Adressen liegt der Wert zwischen 0 und 32. Bei IPv6-Adressen liegt er zwischen 0 und 128 und ist die bevorzugte Form der Darstellung von Adressen.
Diese Funktion gibt -1 zurück, wenn die Präfixlänge nicht ermittelt werden konnte (d.h. netmask() gibt eine Null QHostAddress() zurück).
Siehe auch setPrefixLength() und netmask().
void QNetworkAddressEntry::setAddressLifetime(QDeadlineTimer preferred, QDeadlineTimer validity)
Setzt sowohl die bevorzugte als auch die gültige Lebenszeit für diese Adresse auf die Fristen preferred bzw. validity. Nach diesem Aufruf gibt isLifetimeKnown() true
zurück, auch wenn beide Parameter QDeadlineTimer::Forever sind.
Siehe auch preferredLifetime(), validityLifetime(), isLifetimeKnown(), und clearAddressLifetime().
void QNetworkAddressEntry::setBroadcast(const QHostAddress &newBroadcast)
Setzt die Broadcast-IP-Adresse dieses QNetworkAddressEntry -Objekts auf newBroadcast.
Siehe auch broadcast().
void QNetworkAddressEntry::setDnsEligibility(QNetworkAddressEntry::DnsEligibilityStatus status)
Setzt das DNS-Zulässigkeitsflag für diese Adresse auf status.
Siehe auch dnsEligibility().
void QNetworkAddressEntry::setIp(const QHostAddress &newIp)
Setzt die IP-Adresse, die das Objekt QNetworkAddressEntry enthält, auf newIp.
Siehe auch ip().
void QNetworkAddressEntry::setNetmask(const QHostAddress &newNetmask)
Setzt die Netzmaske, die dieses QNetworkAddressEntry Objekt enthält, auf newNetmask. Durch das Setzen der Netzmaske wird auch die Präfixlänge auf die neue Netzmaske eingestellt.
Siehe auch netmask() und setPrefixLength().
void QNetworkAddressEntry::setPrefixLength(int length)
Setzt die Präfixlänge dieser IP-Adresse auf length. Der Wert von length muss für diesen Typ von IP-Adresse gültig sein: zwischen 0 und 32 für IPv4-Adressen, zwischen 0 und 128 für IPv6-Adressen. Die Einstellung auf einen ungültigen Wert ist gleichbedeutend mit der Einstellung auf -1, was "keine Präfixlänge" bedeutet.
Das Setzen der Präfixlänge legt auch die Netzmaske fest (siehe netmask()).
Siehe auch prefixLength() und setNetmask().
[noexcept]
void QNetworkAddressEntry::swap(QNetworkAddressEntry &other)
Tauscht diese Netzadresseintragsinstanz mit other aus. Dieser Vorgang ist sehr schnell und schlägt nie fehl.
QDeadlineTimer QNetworkAddressEntry::validityLifetime() const
Gibt die Frist zurück, zu der diese Adresse ungültig wird und aus dem Netzwerkstapel entfernt wird, falls bekannt. Wenn die Lebensdauer der Adresse nicht bekannt ist (siehe isLifetimeKnown()), gibt diese Funktion immer QDeadlineTimer::Forever zurück.
Solange eine Adresse gültig ist, wird sie vom Betriebssystem als gültige Zieladresse für diesen Rechner akzeptiert. Ob sie als Quelladresse für neue, ausgehende Pakete verwendet wird, wird neben anderen Regeln durch die bevorzugte Lebensdauer gesteuert (siehe preferredLifetime()).
Siehe auch preferredLifetime(), isLifetimeKnown(), setAddressLifetime(), und clearAddressLifetime().
bool QNetworkAddressEntry::operator!=(const QNetworkAddressEntry &other) const
Gibt true
zurück, wenn sich dieser Netzwerkadresseintrag von other unterscheidet.
QNetworkAddressEntry &QNetworkAddressEntry::operator=(const QNetworkAddressEntry &other)
Erzeugt eine Kopie des Objekts QNetworkAddressEntry other .
bool QNetworkAddressEntry::operator==(const QNetworkAddressEntry &other) const
Gibt true
zurück, wenn dieser Netzwerkadresseintrag mit other identisch ist.
Verwandte Nicht-Mitglieder
[since 6.2]
QDebug operator<<(QDebug debug, const QNetworkAddressEntry &entry)
Schreibt die QNetworkAddressEntry entry in den Stream und gibt eine Referenz auf den debug Stream zurück.
Diese Funktion wurde in Qt 6.2 eingeführt.
© 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.