QNetworkAddressEntry Class
QNetworkAddressEntry クラスは、ネットワーク・インターフェイスがサポートする IP アドレスを 1 つ、関連するネットマスクとブロードキャスト・アドレスとともに格納します。詳細...
Header: | #include <QNetworkAddressEntry> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake: | QT += network |
- 継承メンバを含むすべてのメンバのリスト
- QNetworkAddressEntry は、ネットワーク・プログラミング APIおよび暗黙の共有クラスに属しています。
メモ:このクラスの関数はすべてリエントラントです。
パブリック型
enum | DnsEligibilityStatus { DnsEligibilityUnknown, DnsEligible, DnsIneligible } |
パブリック関数
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) |
詳細説明
各ネットワークインターフェイスは0個以上のIPアドレスを持つことができ、それらはネットマスクやブロードキャストアドレスと関連付けることができます(オペレーティングシステムのサポートに依存します)。
このクラスはそのようなグループの 1 つを表します。
メンバ型ドキュメント
enum QNetworkAddressEntry::DnsEligibilityStatus
この列挙型は、与えられたホストアドレスがドメインネームシステム (DNS)や他の同様の名前解決機構で公開される資格があるかどうかを示す。一般的に、アドレスが永続的である必要はないが、このマシンが不定な時間到達するアドレスである場合、アドレスは公開に適している。例えば、DHCP経由で取得されたアドレスはしばしば適格であるが、暗号的に生成された一時的なIPv6アドレスは不適格である。
定数 | 値 | 説明 |
---|---|---|
QNetworkAddressEntry::DnsEligibilityUnknown | -1 | Qtとオペレーティングシステムは、このアドレスが公開されるべきかどうかを判断できませんでした。適格なアドレスが見つからない場合、アプリケーションはさらなるヒューリスティックを適用する必要があるかもしれません。 |
QNetworkAddressEntry::DnsEligible | 1 | このアドレスはDNSで公開する資格があります。 |
QNetworkAddressEntry::DnsIneligible | 0 | このアドレスはDNSで公開されるべきではなく、送信パケットの送信元アドレスと して使われる場合を除き、他者に送信されるべきではない。 |
dnsEligibility() およびsetDnsEligibility()も参照のこと 。
メンバ関数 ドキュメント
QNetworkAddressEntry::QNetworkAddressEntry()
空の QNetworkAddressEntry オブジェクトを構築します。
QNetworkAddressEntry::QNetworkAddressEntry(const QNetworkAddressEntry &other)
other オブジェクトのコピーである QNetworkAddressEntry オブジェクトを構築します。
[noexcept]
QNetworkAddressEntry::~QNetworkAddressEntry()
このQNetworkAddressEntry オブジェクトを破棄します。
QHostAddress QNetworkAddressEntry::broadcast() const
IPv4 アドレスとネットマスクに関連付けられたブロードキャスト・アドレスを返します。通常、ネットマスクが0を含むIPアドレスのビットを1に設定することで、この2つから導き出すことができる(言い換えると、IPアドレスとネットマスクの逆数をビット単位でORすること)。
IPv6ではブロードキャストの概念が廃止され、マルチキャストが採用され ているため、IPv6アドレスではこのメンバーは常に空である。特に、ローカルネットワークのすべてのノードに対応するホストのグループには、「all-nodes」特別なマルチキャストグループ(アドレスFF02::1)で到達できる。
setBroadcast()も参照のこと 。
void QNetworkAddressEntry::clearAddressLifetime()
このアドレスの優先寿命と有効寿命の両方をリセットする。この呼び出しの後、isLifetimeKnown() はfalse
を返す。
preferredLifetime()、validityLifetime()、isLifetimeKnown()、setAddressLifetime()も参照の こと。
QNetworkAddressEntry::DnsEligibilityStatus QNetworkAddressEntry::dnsEligibility() const
このアドレスが、ドメインネームシステム(DNS)または類似の名前解決メカニズムで 公開する資格があるかどうかを返す。
一般的に、アドレスが公開に適しているのは、このマシンが一定期間到達する アドレスである場合であるが、永続的である必要はない。例えば、DHCP経由で取得されたアドレスは、しばしば適格であるが、 暗号的に生成された一時的なIPv6アドレスは不適格である。
システムによっては、QNetworkInterface 、ヒューリスティックに対象アドレスを決定する必要がある。
isLifetimeKnown()、isPermanent()、setDnsEligibility()も参照のこと 。
QHostAddress QNetworkAddressEntry::ip() const
この関数は、ネットワーク・インタフェースで見つかったIPv4またはIPv6アドレスを1つ返す。
setIp()も参照 。
bool QNetworkAddressEntry::isLifetimeKnown() const
アドレスの有効期間が既知の場合はtrue
を返し、既知でない場合はfalse
を返す。寿命が不明な場合は、preferredLifetime() とvalidityLifetime() の両方がQDeadlineTimer::Forever を返す。
preferredLifetime()、validityLifetime()、setAddressLifetime()、clearAddressLifetime()も参照 。
bool QNetworkAddressEntry::isPermanent() const
このアドレスがこのインターフェース上で永続的なものである場合はtrue
を返し、一時的なものである場合はfalse
を返す。永続的なアドレスとは、有効期限がなく、多くの場合、静的な(手動で設定された)アドレスである。
この情報が判断できない場合、この関数はtrue
を返す。
注意: オペレーティング・システムとネットワーク・コンフィギュレーション・ツールによっては、ツールがオペレーティング・システムに詳細を正しく通知しなかった場合、一時的なアドレスが永続的なアドレスとして解釈される可能性があります。
isLifetimeKnown ()、validityLifetime ()、isTemporary ()も参照 。
bool QNetworkAddressEntry::isTemporary() const
このアドレスがこのインタフェース上で一時的なものである場合はtrue
を返し、恒久的なものである場合はfalse
を返す。
isLifetimeKnown()、validityLifetime()、isPermanent() も参照 。
QHostAddress QNetworkAddressEntry::netmask() const
IP アドレスに関連付けられたネットマスクを返す。ネットマスクは、255.255.0.0のようなIPアドレスの形式で表される。
IPv6 アドレスの場合、プレフィックス長は 1 にセットされるビット数がプレフィックス長に等しいアドレスに変換される。プレフィックス長が64ビット(最も一般的な値)の場合、ネットマスクはQHostAddress 、FFFF:FFFF:FFFF:FFFF:というアドレスになります:
setNetmask() およびprefixLength()も参照のこと 。
QDeadlineTimer QNetworkAddressEntry::preferredLifetime() const
このアドレスが非推奨 (優先されなくなる) となる期限がわかっている場合は、その期限を返す。アドレスの有効期限が不明な場合 (isLifetimeKnown() を参照)、この関数は常にQDeadlineTimer::Forever を返す。
アドレスが優先されている間、そのアドレスは、オペレーティング・システム によって、新しい送信パケットの送信元アドレスとして使用されるかもしれない。非推奨になった後も、最終的に削除されるまで、着信パケットに対してしばら く有効である(validityLifetime()を参照)。
validityLifetime()、isLifetimeKnown()、setAddressLifetime()、clearAddressLifetime()も参照 。
int QNetworkAddressEntry::prefixLength() const
この IP アドレスのプレフィックス長を返す。プレフィックス長は、ネットマスクで 1 に設定されているビット数と一致する (netmask() を参照)。IPv4 アドレスの場合、この値は 0 から 32 の間である。IPv6アドレスの場合は、0から128の間に含まれ、アドレスを表すのに好ましい形式である。
この関数は、プレフィックス長を決定できなかった場合に -1 を返します (つまり、netmask() は null QHostAddress() を返します)。
setPrefixLength() およびnetmask()も参照 。
void QNetworkAddressEntry::setAddressLifetime(QDeadlineTimer preferred, QDeadlineTimer validity)
このアドレスの優先期限と有効期限の両方を、それぞれpreferred とvalidity の期限に設定する。この呼び出しの後、isLifetimeKnown()は、両方のパラメータがQDeadlineTimer::Forever であっても、true
を返す。
preferredLifetime()、validityLifetime()、isLifetimeKnown()、clearAddressLifetime()も参照のこと 。
void QNetworkAddressEntry::setBroadcast(const QHostAddress &newBroadcast)
このQNetworkAddressEntry オブジェクトのブロードキャスト IP アドレスをnewBroadcast に設定する。
broadcast()も参照して ください。
void QNetworkAddressEntry::setDnsEligibility(QNetworkAddressEntry::DnsEligibilityStatus status)
このアドレスの DNS 資格フラグをstatus に設定します。
dnsEligibility() も参照して ください。
void QNetworkAddressEntry::setIp(const QHostAddress &newIp)
QNetworkAddressEntry オブジェクトが含む IP アドレスをnewIp に設定します。
ip() も参照して ください。
void QNetworkAddressEntry::setNetmask(const QHostAddress &newNetmask)
このQNetworkAddressEntry オブジェクトが含むネットマスクをnewNetmask に設定します。 ネットマスクを設定すると、新しいネットマスクに一致するプレフィックス長も設定されます。
netmask() およびsetPrefixLength() も参照して ください。
void QNetworkAddressEntry::setPrefixLength(int length)
このIPアドレスのプレフィックス長をlength に設定する。length の値は、このタイプのIPアドレスに対して有効な値でなければならない: IPv4アドレスの場合は0から32の間、IPv6アドレスの場合は0から128の間。無効な値を設定することは、「プレフィックス長なし」を意味する -1 を設定することと同じである。
プレフィックス長を設定すると、ネットマスクも設定される (netmask() を参照)。
prefixLength() およびsetNetmask()も参照 。
[noexcept]
void QNetworkAddressEntry::swap(QNetworkAddressEntry &other)
このネットワークアドレスエントリのインスタンスをother と交換する。この関数は非常に高速で、失敗することはない。
QDeadlineTimer QNetworkAddressEntry::validityLifetime() const
このアドレスが無効になり、ネットワーク・スタックから削除される期限を、既知であれば返します。アドレスの有効期限が不明な場合(isLifetimeKnown ()を参照)、この関数は常にQDeadlineTimer::Forever を返します。
アドレスが有効な間は、オペレーティング・システムはそのマシンの有効な宛先アド レスとしてそのアドレスを受け入れます。このアドレスが新しい送信パケットの送信元アドレスとして使用されるかどうかは、 特に優先有効期限によって制御される(preferredLifetime()を参照)。
preferredLifetime()、isLifetimeKnown()、setAddressLifetime()、clearAddressLifetime()も参照のこと 。
bool QNetworkAddressEntry::operator!=(const QNetworkAddressEntry &other) const
このネットワーク・アドレス・エントリがother と異なる場合はtrue
を返します。
QNetworkAddressEntry &QNetworkAddressEntry::operator=(const QNetworkAddressEntry &other)
QNetworkAddressEntry オブジェクトother のコピーを作成します。
bool QNetworkAddressEntry::operator==(const QNetworkAddressEntry &other) const
このネットワーク・アドレス・エントリがother と同じ場合はtrue
を返します。
関連する非会員
[since 6.2]
QDebug operator<<(QDebug debug, const QNetworkAddressEntry &entry)
QNetworkAddressEntry entry をストリームに書き込み、debug ストリームへの参照を返します。
この関数は Qt 6.2 で導入されました。
©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。