QNetworkInterface Class
QNetworkInterface クラスは、ホストの IP アドレスとネットワーク・インターフェースのリストを提供します。詳細...
ヘッダー | #include <QNetworkInterface> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake: | QT += network |
- 継承メンバを含む全メンバのリスト
- QNetworkInterface は、ネットワーク・プログラミング APIおよび暗黙的に共有されるクラスの一部です。
メモ:このクラスの関数はすべてリエントラントです。
パブリック・タイプ
enum | InterfaceFlag { IsUp, IsRunning, CanBroadcast, IsLoopBack, IsPointToPoint, CanMulticast } |
flags | InterfaceFlags |
enum | InterfaceType { Unknown, Loopback, Virtual, Ethernet, Wifi, …, Ieee1394 } |
パブリック関数
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) |
静的パブリック・メンバ
QList<QHostAddress> | allAddresses() |
QList<QNetworkInterface> | allInterfaces() |
QNetworkInterface | interfaceFromIndex(int index) |
QNetworkInterface | interfaceFromName(const QString &name) |
int | interfaceIndexFromName(const QString &name) |
QString | interfaceNameFromIndex(int index) |
関連する非メンバ
QDebug | operator<<(QDebug debug, const QNetworkInterface &networkInterface) |
詳細説明
QNetworkInterface は、プログラムが実行されているホストに接続されている 1 つのネットワーク・インターフェースを表します。各ネットワーク・インターフェースは、0個以上のIPアドレスを含むことができ、各IPアドレスはオプションでネットマスクやブロードキャスト・アドレスと関連付けられます。このようなトリオのリストは、addressEntries()で取得できる。また、ネットマスクやブロードキャスト・アドレスなどの情報が不要な場合は、allAddresses ()を使用して、アクティブなインタフェースのIPアドレスだけを取得することもできます。
QNetworkInterface は、hardwareAddress() を使用して、インタフェースのハードウェア・アドレスも報告します。
すべてのオペレーティング・システムがすべての機能の報告をサポートしているわけではありません。すべてのプラットフォームで、このクラスによってリストされることが保証されているのはIPv4アドレスだけです。特に、IPv6アドレスのリストは、Windows、Linux、macOS、およびBSDでのみサポートされています。
QNetworkAddressEntryも参照の こと。
メンバ型ドキュメント
enum QNetworkInterface::InterfaceFlag
flags QNetworkInterface::InterfaceFlags
このネットワーク・インターフェースに関連するフラグを指定します。指定可能な値は以下のとおりです:
定数 | 値 | 説明 |
---|---|---|
QNetworkInterface::IsUp | 0x1 | ネットワーク・インタフェースが "up "である。 |
QNetworkInterface::IsRunning | 0x2 | ネットワーク・インタフェースが動作している: "up "に設定され、(通常は)物理的にネットワークに接続されている。 |
QNetworkInterface::CanBroadcast | 0x4 | ネットワーク・インターフェースがブロードキャスト・モードで動作している |
QNetworkInterface::IsLoopBack | 0x8 | ネットワーク・インターフェースがループバックインターフェースである:つまり、ホスト・コンピューター自身を宛先とする仮想インターフェースである。 |
QNetworkInterface::IsPointToPoint | 0x10 | ネットワーク・インターフェイスがポイント・ツー・ポイント・インターフェイスである。 |
QNetworkInterface::CanMulticast | 0x20 | ネットワークインターフェイスがマルチキャストをサポートしている |
1つのネットワーク・インターフェイスがブロードキャスト・ベースとポイント・ツー・ポイントの両方になることはできないことに注意してください。
InterfaceFlags型はQFlags<InterfaceFlag>のtypedefである。これは、InterfaceFlag値のORの組み合わせを格納します。
enum QNetworkInterface::InterfaceType
このインタフェースのハードウェアタイプ(PHY 層、OSI レベル 1)を指定します。将来のバージョンの Qt では、新しい列挙値が追加されるかもしれません。
可能な値は以下の通りです:
定数 | 値 | 説明 |
---|---|---|
QNetworkInterface::Unknown | 0 | インターフェースの種類を決定できなかったか、他の列挙された種類のいずれでもありません。 |
QNetworkInterface::Loopback | 1 | ループバックIPアドレス(127.0.0.1, ::1)が割り当てられている仮想ループバックインタフェース。 |
QNetworkInterface::Virtual | 2 | 仮想であると決定されたインターフェースのタイプで、他のタイプのいずれでもないもの。例えば、トンネルインターフェイスは(現在のところ)仮想インターフェイスとして検出される。 |
QNetworkInterface::Ethernet | 3 | IEEE 802.3イーサネットインターフェイス。多くのシステムでは、他のタイプのIEEE 802インターフェイスもイーサネット(特にWi-Fi)として検出されることがあります。 |
QNetworkInterface::Wifi | 8 | IEEE 802.11 Wi-Fi インターフェース。システムによっては、QNetworkInterface 、通常のイーサネットとWi-Fiを区別できず、このenum値を返さない場合があることに注意してください。 |
QNetworkInterface::Ieee80211 | Wifi | WiFiの別名。 |
QNetworkInterface::CanBus | 5 | ISO 11898 コントローラ・エリア・ネットワーク・バス・インターフェース。 |
QNetworkInterface::Fddi | 7 | ANSI X3T12 Fiber Distributed Data Interface(光ファイバーによるローカルエリアネットワーク)。 |
QNetworkInterface::Ppp | 6 | Point-to-Point Protocol インターフェース。下位トランスポート層(多くの場合、無線または物理回線上のシリアル)を介して2つのノード間に直接接続を確立する。 |
QNetworkInterface::Slip | 4 | シリアルラインインターネットプロトコルインターフェイス。 |
QNetworkInterface::Phonet | 9 | Linux Phonet ソケットファミリーを使用した、携帯モデムとの通信用インターフェース。詳細はLinuxカーネルのドキュメントを参照。 |
QNetworkInterface::Ieee802154 | 10 | 6LoWPAN 以外の IEEE 802.15.4 パーソナルエリアネットワークインターフェース (下記参照)。 |
QNetworkInterface::SixLoWPAN | 11 | 6LoWPAN (IPv6 over Low-power Wireless Personal Area Networks) インターフェースは、IEEE 802.15.4 PHY で動作するが、IPv6 と UDP のための特定のヘッダー圧縮スキームを持っている。このタイプのインターフェースはメッシュネットワーキングによく使われる。 |
QNetworkInterface::Ieee80216 | 12 | IEEE 802.16 Wireless Metropolitan Area Network。「WiMAX」という商用名でも知られている。 |
QNetworkInterface::Ieee1394 | 13 | IEEE 1394インターフェース(別名「FireWire」)。 |
メンバー機能文書
QNetworkInterface::QNetworkInterface()
空のネットワーク・インターフェース・オブジェクトを構築します。
QNetworkInterface::QNetworkInterface(const QNetworkInterface &other)
other に含まれる QNetworkInterface オブジェクトのコピーを作成します。
[noexcept]
QNetworkInterface::~QNetworkInterface()
QNetworkInterface オブジェクトに関連付けられたリソースを解放します。
QList<QNetworkAddressEntry> QNetworkInterface::addressEntries() const
このインターフェースが持つIPアドレスのリストを、関連するネットマスクとブロードキャスト・アドレスとともに返す。
ネットマスクやブロードキャストアドレスなどの情報が不要な場合は、allAddresses ()関数を呼び出して、アクティブなインタフェースのIPアドレスだけを取得することができる。
[static]
QList<QHostAddress> QNetworkInterface::allAddresses()
この便宜関数は、ホスト・マシンで見つかったすべてのIPアドレスを返す。この関数は、allInterfaces()で返されたオブジェクトのうち、QNetworkInterface::IsUp の状態にあるすべてのオブジェクトに対してaddressEntries()を呼び出して、QNetworkAddressEntry オブジェクトのリストを取得し、その各オブジェクトに対してQNetworkAddressEntry::ip()を呼び出すのと同じである。
[static]
QList<QNetworkInterface> QNetworkInterface::allInterfaces()
ホスト・マシンで見つかったすべてのネットワーク・インタフェースのリストを返す。失敗した場合は、要素数0のリストを返す。
QNetworkInterface::InterfaceFlags QNetworkInterface::flags() const
このネットワーク・インターフェースに関連付けられたフラグを返します。
QString QNetworkInterface::hardwareAddress() const
このインタフェースの低レベルハードウェアアドレスを返す。イーサネット・インターフェースの場合、これはコロンで区切られた文字列表現のMACアドレスになります。
他のインターフェース・タイプでは、他のタイプのハードウェア・アドレスを持つかもしれない。実装は、この関数が有効なMACアドレスを返すことに依存してはならない。
type()も参照のこと 。
QString QNetworkInterface::humanReadableName() const
Windows 上でこのネットワーク・インタフェースの人間が読める名前(「Local Area Connection」のような)を決定できた場合、その名前を返す。判別できなかった場合、この関数はname() と同じものを返す。人間が読み取り可能な名前は、Windowsのコントロール・パネルでユーザーが変更できる名前であるため、プログラムの実行中に変更される可能性がある。
Unixでは、この関数は現在のところ常にname ()と同じものを返す。これは、Unixシステムには人間が読める名前の構成が保存されていないためである。
int QNetworkInterface::index() const
インターフェース・システム・インデックスを返します。これはオペレーティングシステムがこのインターフェイスを識別するために割り当てる整数で、通常は変更されない。IPv6アドレスのスコープIDフィールドと一致する。
インデックスがわからない場合、この関数は0を返す。
[static]
QNetworkInterface QNetworkInterface::interfaceFromIndex(int index)
内部 ID がindex であるインターフェースのQNetworkInterface オブジェクトを返す。ネットワーク・インターフェースは、システム上の他のインターフェースと区別するために、「インターフェース・インデックス」と呼ばれる一意の識別子を持つ。多くの場合、この値は漸進的に割り当てられ、削除され、再び追加されるインターフェースは、毎回異なる値を得る。
このインデックスは、IPv6アドレスのスコープIDフィールドにもある。
[static]
QNetworkInterface QNetworkInterface::interfaceFromName(const QString &name)
name というインターフェースのQNetworkInterface オブジェクトを返す。そのようなインタフェースが存在しない場合、この関数は無効なQNetworkInterface オブジェクトを返す。
文字列name は、実際のインターフェース名("eth0 "や "en1 "など)か、文字列形式のインターフェー ス・インデックス("1 "や "2 "など)である。
[static]
int QNetworkInterface::interfaceIndexFromName(const QString &name)
名前がname であるインターフェースのインデックスを返すか、その名前のインターフェースがない場合は0を返す。この関数は以下のコードと同じ結果を返すはずですが、おそらく実行速度は速くなります。
QNetworkInterface::interfaceFromName(name).index()
interfaceFromName()、interfaceNameFromIndex()、QNetworkDatagram::interfaceIndex()も参照の こと。
[static]
QString QNetworkInterface::interfaceNameFromIndex(int index)
インデックスがindex であるインターフェースの名前、またはそのインデックスを持つインターフェースがない場合は空文字列を返します。この関数は以下のコードと同じ結果を返すはずですが、おそらく実行速度は速くなります。
QNetworkInterface::interfaceFromIndex(index).name()
interfaceFromIndex()、interfaceIndexFromName()、QNetworkDatagram::interfaceIndex()も参照 。
bool QNetworkInterface::isValid() const
このQNetworkInterface オブジェクトがネットワーク・インターフェースに関する有効な情報を含んでいる場合、true
を返す。
int QNetworkInterface::maximumTransmissionUnit() const
既知の場合はこのインターフェイスの最大伝送単位を、そうでない場合は 0 を返す。
最大送信単位は、リンクレベルのフラグメントを発生させずにこのインターフェイス上で送信できる最大のパケットである。アプリケーションはこの値を使って、フラグメントされないUDPデータグラムに収まるペイロードサイズを計算することができる。送信可能なペイロードのサイズを計算するときは、インターフェイス上の通信で使用されるヘッダーのサイズ(例えば、TCP(20バイト)またはUDP(12バイト)、IPv4(20)またはIPv6(40、何らかのヘッダー圧縮がない場合)を差し引くことを忘れないでください。また、宛先までのフルパス(Path MTU)に沿ったMTUは、インターフェースのMTUよりも小さい場合があることに注意してください。
QUdpSocketも参照の こと。
QString QNetworkInterface::name() const
このネットワーク・インタフェースの名前を返します。Unixシステムでは、これはインタフェースの種類を含む文字列であり、オプションで "eth0"、"lo"、"pcn0 "などのシーケンス番号も含まれる。Windowsでは、ユーザーが変更できない内部IDである。
[noexcept]
void QNetworkInterface::swap(QNetworkInterface &other)
このネットワーク・インターフェース・インスタンスをother と交換する。この操作は非常に高速で、失敗することはない。
QNetworkInterface::InterfaceType QNetworkInterface::type() const
このインタフェースの型を決定できた場合、それを返す。判別できなかった場合、この関数はQNetworkInterface::Unknown を返す。
hardwareAddress()も参照 。
QNetworkInterface &QNetworkInterface::operator=(const QNetworkInterface &other)
other に含まれるQNetworkInterface オブジェクトの内容をこのオブジェクトにコピーする。
関連する非会員
QDebug operator<<(QDebug debug, const QNetworkInterface &networkInterface)
QNetworkInterface networkInterface をストリームに書き込み、debug ストリームへの参照を返す。
© 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.