Класс 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» и т. д.).
[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