Класс QNetworkAddressEntry
Класс QNetworkAddressEntry хранит один IP-адрес, поддерживаемый сетевым интерфейсом, вместе с его соответствующей маской сети и широковещательным адресом. Подробнее...
| Заголовок: | #include <QNetworkAddressEntry> |
| CMake: | find_package(Qt6 COMPONENTS Network REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
Примечание: Все функции в этом классе являются перевключаемыми.
Типы публичного доступа
| Перечисление | DnsEligibilityStatus { DnsEligibilityUnknown, DnsEligible, DnsIneligible } |
Функции публичного доступа
| QNetworkAddressEntry(const QNetworkAddressEntry &other) | |
| QNetworkAddressEntry() | |
| QNetworkAddressEntry & | operator=(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 |
| bool | operator==(const QNetworkAddressEntry &other) const |
Связанные внешние члены
| QDebug | operator<<(QDebug debug, const QNetworkAddressEntry &entry) |
Подробное описание
Каждый сетевой интерфейс может содержать ноль или более IP-адресов, которые, в свою очередь, могут быть связаны с маской сети и/или широковещательным адресом (в зависимости от поддержки операционной системы).
Этот класс представляет собой одну из таких групп.
Документация по типам членов
[since 5.11] Перечисление QNetworkAddressEntry::DnsEligibilityStatus
Это перечисление указывает, подходит ли данный хост-адрес для публикации в системе доменных имен (DNS) или других подобных механизмах разрешения имен. В общем случае адрес подходит для публикации, если он указывает на адрес этого компьютера, доступный неопределённое время, хотя он не обязательно должен быть постоянным. Например, адреса, полученные через DHCP, часто подходят, но криптографически сгенерированные временные IPv6-адреса не подходят.
| Постоянная | Значение | Описание |
|---|---|---|
QNetworkAddressEntry::DnsEligibilityUnknown |
-1 |
Qt и операционная система не смогли определить, следует ли публиковать этот адрес или нет. Приложению может потребоваться применить дополнительные эвристики, если оно не находит подходящих адресов. |
QNetworkAddressEntry::DnsEligible |
1 |
Этот адрес подходит для публикации в DNS. |
QNetworkAddressEntry::DnsIneligible |
0 |
Этот адрес не должен публиковаться в DNS и не должен передаваться другим сторонам, за исключением, возможно, в качестве исходного адреса исходящего пакета. |
Это перечисление было введено или изменено в Qt 5.11.
См. также dnsEligibility() и setDnsEligibility().
Документация по функциям-членам
QNetworkAddressEntry::QNetworkAddressEntry(const QNetworkAddressEntry &other)
Создаёт объект QNetworkAddressEntry, являющийся копией объекта other.
QNetworkAddressEntry::QNetworkAddressEntry()
Создаёт пустой объект QNetworkAddressEntry.
QNetworkAddressEntry &QNetworkAddressEntry::operator=(const QNetworkAddressEntry &other)
Создаёт копию объекта QNetworkAddressEntry other.
QNetworkAddressEntry::~QNetworkAddressEntry()
Уничтожает объект QNetworkAddressEntry.
QHostAddress QNetworkAddressEntry::broadcast() const
Возвращает широковещательный адрес, связанный с IPv4-адресом и маской сети. Обычно его можно получить из этих двух значений, установив в 1 биты IP-адреса, где маска сети содержит 0. (Другими словами, при помощи побитового ИЛИ IP-адреса и инвертированной маски).
Для IPv6-адресов этот член всегда пустой, так как понятие широковещательного адреса было отменено в этой системе в пользу многоадресной рассылки. В частности, группу хостов, соответствующих всем узлам в локальной сети, можно достичь, используя специальную многоадресную группу "все узлы" (адрес FF02::1).
См. также setBroadcast().
[since 5.11] void QNetworkAddressEntry::clearAddressLifetime()
Сбрасывает время жизни как предпочтительное, так и действительное для этого адреса. После вызова этой функции isLifetimeKnown() вернёт false.
Эта функция была введена в Qt 5.11.
См. также preferredLifetime(), validityLifetime(), isLifetimeKnown() и setAddressLifetime().
[since 5.11] QNetworkAddressEntry::DnsEligibilityStatus QNetworkAddressEntry::dnsEligibility() const
Возвращает, является ли этот адрес подходящим для публикации в системе доменных имён (DNS) или аналогичных механизмах разрешения имён.
В общем случае, адрес подходит для публикации, если по нему можно обратиться к этому компьютеру в течение неопределённого времени, хотя он не обязательно должен быть постоянным. Например, адреса, полученные через DHCP, часто подходят, но криптографически сгенерированные временные адреса IPv6 не подходят.
В некоторых системах QNetworkInterface должен эвристически определить, какие адреса подходят.
Эта функция была добавлена в Qt 5.11.
См. также isLifetimeKnown(), isPermanent() и setDnsEligibility().
QHostAddress QNetworkAddressEntry::ip() const
Эта функция возвращает один найденный IPv4 или IPv6 адрес, который был найден в сетевом интерфейсе.
См. также setIp().
[since 5.11] bool QNetworkAddressEntry::isLifetimeKnown() const
Возвращает true , если срок жизни адреса известен, false , если нет. Если срок жизни неизвестен, как preferredLifetime() и validityLifetime() будут возвращать QDeadlineTimer::Forever.
Эта функция была добавлена в Qt 5.11.
См. также preferredLifetime(), validityLifetime(), setAddressLifetime() и clearAddressLifetime().
[since 5.11] bool QNetworkAddressEntry::isPermanent() const
Возвращает true , если этот адрес является постоянным для данного интерфейса, false , если временный. Постоянный адрес — это адрес без срока действия, часто статический (настраиваемый вручную).
Если эту информацию определить не удалось, эта функция возвращает true.
Примечание: В зависимости от операционной системы и инструментария настройки сети, временный адрес может быть интерпретирован как постоянный, если инструмент некорректно передал информацию операционной системе.
Эта функция была добавлена в Qt 5.11.
См. также isLifetimeKnown(), validityLifetime() и isTemporary().
[since 5.11] 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().
[since 5.11] 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() возвращает нулевой QHostAddress()).
См. также setPrefixLength() и netmask().
[since 5.11] 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().
[since 5.11] 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()).
См. также prefixLength() и setNetmask().
[since 5.0] void QNetworkAddressEntry::swap(QNetworkAddressEntry &other)
Меняет местами экземпляры этого сетевого адреса с other. Эта функция очень быстрая и никогда не терпит неудачу.
Эта функция была добавлена в Qt 5.0.
[since 5.11] QDeadlineTimer QNetworkAddressEntry::validityLifetime() const
Возвращает срок действия, когда этот адрес становится недействительным и будет удалён из стека сети, если он известен. Если срок жизни адреса неизвестен (см. isLifetimeKnown()), эта функция всегда возвращает QDeadlineTimer::Forever.
Пока адрес действителен, он будет приниматься операционной системой как допустимый адрес назначения для этого компьютера. Используется ли он в качестве исходного адреса для новых исходящих пакетов, контролируется, среди прочих правил, предпочтительным сроком жизни (см. preferredLifetime()).
Эта функция была добавлена в Qt 5.11.
См. также preferredLifetime(), isLifetimeKnown(), setAddressLifetime() и clearAddressLifetime().
bool QNetworkAddressEntry::operator!=(const QNetworkAddressEntry &other) const
Возвращает true если эта запись сетевого адреса отличается от other.
bool QNetworkAddressEntry::operator==(const QNetworkAddressEntry &other) const
Возвращает true если эта запись сетевого адреса совпадает с other.
Связанные нечлены
[since 6.2] QDebug operator<<(QDebug debug, const QNetworkAddressEntry &entry)
Записывает QNetworkAddressEntry entry в поток и возвращает ссылку на поток debug.
Эта функция была добавлена в Qt 6.2.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qnetworkaddressentry.html