Spec-Zone.ru › Qt 5.6

Класс QNetworkInterface

Класс QNetworkInterface предоставляет список IP-адресов и сетевых интерфейсов хоста. Подробнее...

Заголовок: #include <QNetworkInterface>
qmake: QT += network
С момента: Qt 4.2
  • Список всех членов, включая наследуемые

Примечание: Все функции в этом классе являются реентерабельными.

Типы публичного доступа

перечисление InterfaceFlag { IsUp, IsRunning, CanBroadcast, IsLoopBack, IsPointToPoint, CanMulticast }
флаги InterfaceFlags

Функции публичного доступа

QNetworkInterface()
QNetworkInterface(const QNetworkInterface &other)
~QNetworkInterface()
QList<QNetworkAddressEntry> addressEntries() const
InterfaceFlags flags() const
QString hardwareAddress() const
QString humanReadableName() const
int index() const
bool isValid() const
QString name() const
void swap(QNetworkInterface &other)
QNetworkInterface & operator=(QNetworkInterface &&other)
QNetworkInterface & operator=(const QNetworkInterface &other)

Статические члены публичного доступа

QList<QHostAddress> allAddresses()
QList<QNetworkInterface> allInterfaces()
QNetworkInterface interfaceFromIndex(int index)
QNetworkInterface interfaceFromName(const QString &name)

Подробное описание

Класс QNetworkInterface предоставляет список IP-адресов и сетевых интерфейсов хоста.

QNetworkInterface представляет один сетевой интерфейс, подключённый к хосту, на котором выполняется программа. Каждый сетевой интерфейс может содержать ноль или более IP-адресов, каждый из которых необязательно связан с маской сети и/или широковещательным адресом. Список таких троек можно получить с помощью addressEntries(). В противном случае, если маска сети или широковещательный адрес не нужны, используйте вспомогательную функцию allAddresses(), чтобы получить только IP-адреса.

QNetworkInterface также сообщает аппаратный адрес интерфейса с помощью hardwareAddress().

Не все операционные системы поддерживают отчёт обо всех функциях. Только IPv4-адреса гарантированно перечислены в этом классе на всех платформах. В частности, перечисление IPv6-адресов поддерживается только в Windows, Linux, macOS и BSD.

См. также QNetworkAddressEntry.

Документация по типам членов

перечисление QNetworkInterface::InterfaceFlagфлаги QNetworkInterface::InterfaceFlags

Определяет флаги, связанные с этим сетевым интерфейсом. Возможные значения:

Константа Значение Описание
QNetworkInterface::IsUp 0x1 сетевой интерфейс активен
QNetworkInterface::IsRunning 0x2 сетевой интерфейс имеет выделенные ресурсы
QNetworkInterface::CanBroadcast 0x4 сетевой интерфейс работает в широковещательном режиме
QNetworkInterface::IsLoopBack 0x8 сетевой интерфейс является интерфейсом обратной связи: это виртуальный интерфейс, чей пункт назначения — сам компьютер
QNetworkInterface::IsPointToPoint 0x10 сетевой интерфейс — интерфейс точка-точка: то есть, существует только один другой адрес, который может быть непосредственно достигнут по нему.
QNetworkInterface::CanMulticast 0x20 сетевой интерфейс поддерживает многоадресную рассылку

Обратите внимание, что один сетевой интерфейс не может быть одновременно и широковещательным, и точечно-точечным.

Тип InterfaceFlags — это typedef для QFlags<InterfaceFlag>. Он хранит логическое ИЛИ комбинацию значений InterfaceFlag.

Документация по функциям членов

QNetworkInterface::QNetworkInterface()

Конструирует пустой объект сетевого интерфейса.

QNetworkInterface::QNetworkInterface(const QNetworkInterface &other)

Создаёт копию объекта QNetworkInterface, содержащегося в other.

QNetworkInterface::~QNetworkInterface()

Освобождает ресурсы, связанные с объектом QNetworkInterface.

QList<QNetworkAddressEntry> QNetworkInterface::addressEntries() const

Возвращает список IP-адресов, имеющихся у этого интерфейса, вместе с ассоциированными масками сети и широковещательными адресами.

Если информация о маске сети или широковещательном адресе не нужна, можно вызвать функцию allAddresses(), чтобы получить только IP-адреса.

QList<QHostAddress> QNetworkInterface::allAddresses()

Эта вспомогательная функция возвращает все IP-адреса, найденные на компьютере. Она эквивалентна вызову addressEntries() для всех объектов, возвращённых allInterfaces(), для получения списков объектов QHostAddress, а затем вызову QHostAddress::ip() для каждого из них.

QList<QNetworkInterface> QNetworkInterface::allInterfaces()

Возвращает список всех сетевых интерфейсов, найденных на хост-машине. В случае сбоя возвращает список с нулём элементов.

InterfaceFlags QNetworkInterface::flags() const

Возвращает флаги, связанные с этим сетевым интерфейсом.

QString QNetworkInterface::hardwareAddress() const

Возвращает низкоуровневый аппаратный адрес для этого интерфейса. Для Ethernet-интерфейсов это будет MAC-адрес в строковом представлении, разделённый двоеточиями.

Другие типы интерфейсов могут иметь другие типы аппаратных адресов. Реализации не должны зависеть от того, что эта функция возвращает корректный MAC-адрес.

QString QNetworkInterface::humanReadableName() const

Возвращает удобочитаемое имя этого сетевого интерфейса в Windows, например, "Подключение к локальной сети", если имя может быть определено. Если нет, эта функция возвращает то же значение, что и name(). Удобочитаемое имя — это имя, которое пользователь может изменить в Панели управления Windows, поэтому оно может изменяться во время выполнения программы.

END_OF_DOCUMENT_MARKER

В Unix данная функция всегда возвращает то же значение, что и name(), так как системы Unix не хранят конфигурацию для имен, понятных человеку.

Данная функция была введена в Qt 4.5.

int QNetworkInterface::index() const

Возвращает системный индекс интерфейса, если он известен. Это целое число, назначенное операционной системой для идентификации этого интерфейса, и оно, как правило, не изменяется. Оно соответствует полю scope ID в адресах IPv6.

Если индекс неизвестен, функция возвращает 0.

Данная функция была введена в Qt 4.5.

[static] QNetworkInterface QNetworkInterface::interfaceFromIndex(int index)

Возвращает объект QNetworkInterface для интерфейса, внутренний ID которого равен index. Сетевые интерфейсы имеют уникальный идентификатор, называемый «индексом интерфейса», чтобы отличить его от других интерфейсов в системе. Часто это значение назначается последовательно, а удаляемые и затем вновь добавляемые интерфейсы получают новое значение каждый раз.

Этот индекс также содержится в поле scope ID адреса IPv6.

[static] QNetworkInterface QNetworkInterface::interfaceFromName(const QString &name)

Возвращает объект QNetworkInterface для интерфейса с именем name. Если такого интерфейса не существует, функция возвращает недействительный объект QNetworkInterface.

Строка name может быть либо фактическим именем интерфейса (например, «eth0» или «en1»), либо индексом интерфейса в строковом формате («1», «2» и т. д.).

См. также name() и isValid().

bool QNetworkInterface::isValid() const

Возвращает true, если этот объект QNetworkInterface содержит действительную информацию об сетевом интерфейсе.

QString QNetworkInterface::name() const

Возвращает имя этого сетевого интерфейса. В системах Unix это строка, содержащая тип интерфейса и, необязательно, порядковый номер, такой как «eth0», «lo» или «pcn0». В Windows это внутренний ID, который пользователь изменить не может.

void QNetworkInterface::swap(QNetworkInterface &other)

Меняет местами этот экземпляр сетевого интерфейса с other. Эта функция очень быстрая и никогда не завершается с ошибкой.

Данная функция была введена в Qt 5.0.

QNetworkInterface &QNetworkInterface::operator=(QNetworkInterface &&other)

Оператор перемещающей присваивания.

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

Копирует содержимое объекта QNetworkInterface, содержащегося в other, в этот.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qnetworkinterface.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API