Spec-Zone.ru › Qt 5.9

Класс 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)
int interfaceIndexFromName(const QString &name)
QString interfaceNameFromIndex(int index)

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

Класс 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 — это псевдоним для 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, поэтому оно может измениться во время выполнения программы.

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

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

int QNetworkInterface::index() const

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

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

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

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

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

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

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

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

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

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

[static] int QNetworkInterface::interfaceIndexFromName(const QString &name)

Возвращает индекс интерфейса с именем name или 0, если интерфейса с таким именем нет. Эта функция должна давать тот же результат, что и следующий код, но, вероятно, будет выполняться быстрее.

QNetworkInterface::interfaceFromName(name).index()

Эта функция была добавлена в Qt 5.7.

См. также interfaceFromName(), interfaceNameFromIndex() и QNetworkDatagram::interfaceIndex().

[static] QString QNetworkInterface::interfaceNameFromIndex(int index)

Возвращает имя интерфейса с индексом index или пустую строку, если интерфейса с таким индексом нет. Эта функция должна давать тот же результат, что и следующий код, но, вероятно, будет выполняться быстрее.

QNetworkInterface::interfaceFromIndex(index).name()

Эта функция была добавлена в Qt 5.7.

См. также interfaceFromIndex(), interfaceIndexFromName() и QNetworkDatagram::interfaceIndex().

bool QNetworkInterface::isValid() const

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

QString QNetworkInterface::name() const

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

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/qt-5.9/qnetworkinterface.html

Spec-Zone.ru

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