Класс QNetworkAddressEntry
Класс QNetworkAddressEntry хранит один IP-адрес, поддерживаемый сетевым интерфейсом, вместе с его связанной маской сети и адресом широковещательной рассылки. Подробнее...
| Заголовок: | #include <QNetworkAddressEntry> |
| qmake: | QT += network |
| С момента: | Qt 4.2 |
Примечание: Все функции в этом классе являются перевходовыми.
Типы публичного доступа
| перечисление | 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=(QNetworkAddressEntry &&other) |
| QNetworkAddressEntry & | operator=(const QNetworkAddressEntry &other) |
| bool | operator==(const QNetworkAddressEntry &other) const |
Подробное описание
Класс QNetworkAddressEntry хранит один IP-адрес, поддерживаемый сетевым интерфейсом, вместе с его связанной маской сети и адресом широковещательной рассылки.
Каждый сетевой интерфейс может содержать ноль или более IP-адресов, которые в свою очередь могут быть связаны с маской сети и/или адресом широковещательной рассылки (в зависимости от поддержки операционной системой).
Этот класс представляет собой одну такую группу.
Документация по типам членов
перечисление QNetworkAddressEntry::DnsEligibilityStatus
Это перечисление указывает, может ли данный адрес хоста быть опубликован в системе доменных имен (DNS) или аналогичных механизмах разрешения имен. В общем случае адрес подходит для публикации, если к этому компьютеру можно обратиться по этому адресу неопределенное время, хотя он и не обязательно должен быть постоянным. Например, адреса, полученные через DHCP, часто подходят, но криптографически сгенерированные временные IPv6-адреса не подходят.
| Постоянная | Значение | Описание |
|---|---|---|
QNetworkAddressEntry::DnsEligibilityUnknown |
-1 |
Qt и операционная система не смогли определить, следует ли публиковать этот адрес или нет. Приложению может потребоваться применить дополнительные эвристики, если оно не найдет подходящих адресов. |
QNetworkAddressEntry::DnsEligible |
1 |
Этот адрес подходит для публикации в DNS. |
QNetworkAddressEntry::DnsIneligible |
0 |
Этот адрес не должен публиковаться в DNS и не должен передаваться другим сторонам, за исключением, возможно, в качестве адреса источника исходящего пакета. |
Это перечисление было введено или изменено в Qt 5.11.
См. также dnsEligibility() и setDnsEligibility().
Документация по функциям членов
QNetworkAddressEntry::QNetworkAddressEntry()
Создает пустой объект QNetworkAddressEntry.
QNetworkAddressEntry::QNetworkAddressEntry(const QNetworkAddressEntry &other)
Создает объект QNetworkAddressEntry, который является копией объекта other.
QNetworkAddressEntry::~QNetworkAddressEntry()
Уничтожает этот объект QNetworkAddressEntry.
QHostAddress QNetworkAddressEntry::broadcast() const
Возвращает адрес широковещательной рассылки, связанный с IPv4-адресом и маской сети. Его обычно можно вывести из этих двух, установив в 1 биты IP-адреса, где маска сети содержит 0. (Другими словами, путем побитового ИЛИ IP-адреса с обратной маской сети)
Этот член всегда пуст для IPv6-адресов, поскольку концепция широковещательной рассылки была отменена в этой системе в пользу многоадресной рассылки. В частности, группа хостов, соответствующая всем узлам в локальной сети, может быть достигнута с помощью специальной многоадресной группы «все узлы» (адрес FF02::1).
См. также setBroadcast().
void QNetworkAddressEntry::clearAddressLifetime()
Сбрасывает как предпочтительный, так и действительный срок действия для этого адреса. После этого вызова isLifetimeKnown() вернет false.
Эта функция была введена в Qt 5.11.
См. также preferredLifetime(), validityLifetime(), isLifetimeKnown() и setAddressLifetime().
QNetworkAddressEntry::DnsEligibilityStatus QNetworkAddressEntry::dnsEligibility() const
Возвращает, подходит ли этот адрес для публикации в системе доменных имен (DNS) или аналогичных механизмах разрешения имен.
В общем случае адрес подходит для публикации, если к этому компьютеру можно обратиться по этому адресу неопределенное время, хотя он и не обязательно должен быть постоянным. Например, адреса, полученные через DHCP, часто подходят, но криптографически сгенерированные временные IPv6-адреса не подходят.
В некоторых системах, QNetworkInterface должен эвристически определить, какие адреса допустимы.
Эта функция была добавлена в Qt 5.11.
См. также isLifetimeKnown(), isPermanent() и setDnsEligibility().
QHostAddress QNetworkAddressEntry::ip() const
Эта функция возвращает один найденный IPv4 или IPv6 адрес, найденный в сетевом интерфейсе.
См. также setIp().
bool QNetworkAddressEntry::isLifetimeKnown() const
Возвращает true если срок жизни адреса известен, false если нет. Если срок жизни неизвестен, то preferredLifetime() и validityLifetime() вернут QDeadlineTimer::Forever.
Эта функция была добавлена в Qt 5.11.
См. также preferredLifetime(), validityLifetime(), setAddressLifetime() и clearAddressLifetime().
bool QNetworkAddressEntry::isPermanent() const
Возвращает true если этот адрес постоянный для этого интерфейса, false если он временный. Постоянный адрес — это адрес без срока действия, часто статический (настраивается вручную).
Если эта информация не может быть определена, эта функция возвращает true.
Примечание: В зависимости от операционной системы и инструментария сетевой конфигурации, временный адрес может быть интерпретирован как постоянный, если инструмент не сообщил данные корректно операционной системе.
Эта функция была добавлена в Qt 5.11.
См. также isLifetimeKnown(), validityLifetime() и isTemporary().
bool QNetworkAddressEntry::isTemporary() const
Возвращает true если этот адрес временный для этого интерфейса, false если он постоянный.
Эта функция была добавлена в Qt 5.11.
См. также isLifetimeKnown(), validityLifetime() и isPermanent().
QHostAddress QNetworkAddressEntry::netmask() const
Возвращает маску сети, связанную с IP-адресом. Маска сети выражается в виде IP-адреса, например, 255.255.0.0.
Для IPv6-адресов длина префикса преобразуется в адрес, где количество установленных в 1 битов равно длине префикса. Для длины префикса в 64 бита (самое распространённое значение), маска сети будет выражена как QHostAddress, содержащий адрес FFFF:FFFF:FFFF:FFFF::
См. также setNetmask() и prefixLength().
QDeadlineTimer QNetworkAddressEntry::preferredLifetime() const
Возвращает крайний срок, когда этот адрес становится устаревшим (больше не предпочтительным), если известен. Если срок жизни адреса неизвестен (см. isLifetimeKnown()), эта функция всегда возвращает QDeadlineTimer::Forever.
Пока адрес предпочтительный, он может использоваться операционной системой в качестве адреса источника для новых исходящих пакетов. После того, как он устареет, он останется действительным для входящих пакетов немного дольше, пока не будет удалён (см. validityLifetime()).
Эта функция была добавлена в Qt 5.11.
См. также validityLifetime(), isLifetimeKnown(), setAddressLifetime() и clearAddressLifetime().
int QNetworkAddressEntry::prefixLength() const
Возвращает длину префикса этого IP-адреса. Длина префикса соответствует количеству битов, установленных в 1 в маске сети (см. netmask()). Для IPv4-адресов значение находится в диапазоне от 0 до 32. Для IPv6-адресов оно находится в диапазоне от 0 до 128 и является предпочтительной формой представления адресов.
Функция возвращает -1, если длина префикса не может быть определена (т.е. netmask() возвращает null QHostAddress()).
Эта функция была добавлена в Qt 4.5.
См. также setPrefixLength() и netmask().
void QNetworkAddressEntry::setAddressLifetime(QDeadlineTimer preferred, QDeadlineTimer validity)
Устанавливает предпочтительный и действительный сроки жизни для этого адреса соответственно к preferred и validity крайним срокам. После этого вызова isLifetimeKnown() вернёт true, даже если оба параметра равны QDeadlineTimer::Forever.
Эта функция была добавлена в Qt 5.11.
См. также preferredLifetime(), validityLifetime(), isLifetimeKnown() и clearAddressLifetime().
void QNetworkAddressEntry::setBroadcast(const QHostAddress &newBroadcast)
Устанавливает IP-адрес широковещания для этого объекта QNetworkAddressEntry на newBroadcast.
См. также broadcast().
void QNetworkAddressEntry::setDnsEligibility(QNetworkAddressEntry::DnsEligibilityStatus status)
Устанавливает флаг допустимости DNS для этого адреса на status.
Эта функция была добавлена в Qt 5.11.
См. также dnsEligibility().
void QNetworkAddressEntry::setIp(const QHostAddress &newIp)
Устанавливает IP-адрес, содержащийся в объекте QNetworkAddressEntry, на newIp.
См. также ip().
void QNetworkAddressEntry::setNetmask(const QHostAddress &newNetmask)
Устанавливает маску сети, содержащуюся в этом объекте QNetworkAddressEntry, на newNetmask. Установка маски сети также устанавливает длину префикса в соответствии с новой маской сети.
См. также netmask() и setPrefixLength().
void QNetworkAddressEntry::setPrefixLength(int length)
Устанавливает длину префикса этого IP-адреса на length. Значение length должно быть допустимым для этого типа IP-адреса: от 0 до 32 для IPv4-адресов, от 0 до 128 для IPv6-адресов. Установка любого недопустимого значения эквивалентна установке -1, что означает «нет длины префикса».
Установка длины префикса также устанавливает маску сети (см. netmask()).
Эта функция была добавлена в Qt 4.5.
См. также prefixLength() и setNetmask().
void QNetworkAddressEntry::swap(QNetworkAddressEntry &other)
Меняет местами экземпляры этого сетевого адреса с other. Эта функция очень быстрая и никогда не терпит неудач.
Эта функция была добавлена в Qt 5.0.
QDeadlineTimer QNetworkAddressEntry::validityLifetime() const
Возвращает крайний срок, когда этот адрес становится недействительным и будет удалён из стека сетевых соединений, если известен. Если срок жизни адреса неизвестен (см. isLifetimeKnown()), эта функция всегда возвращает QDeadlineTimer::Forever.
Пока адрес действителен, он будет принят операционной системой как допустимый адрес назначения для этой машины. Будет ли он использоваться в качестве адреса источника для новых исходящих пакетов, контролируется, среди прочих правил, предпочтительным сроком жизни (см. preferredLifetime()).
Эта функция была добавлена в Qt 5.11.
См. также preferredLifetime(), isLifetimeKnown(), setAddressLifetime() и clearAddressLifetime().
bool QNetworkAddressEntry::operator!=(const QNetworkAddressEntry &other) const
Возвращает true если этот сетевой адрес отличается от other.
QNetworkAddressEntry &QNetworkAddressEntry::operator=(QNetworkAddressEntry &&other)
Оператор перемещающего присваивания.
QNetworkAddressEntry &QNetworkAddressEntry::operator=(const QNetworkAddressEntry &other)
Создает копию объекта QNetworkAddressEntry other.
bool QNetworkAddressEntry::operator==(const QNetworkAddressEntry &other) const
Возвращает true , если эта запись сетевого адреса совпадает с other.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qnetworkaddressentry.html