Класс QNetworkAddressEntry
Класс QNetworkAddressEntry хранит один IP-адрес, поддерживаемый сетевым интерфейсом, вместе с его связанной маской сети и широковещательным адресом. Подробнее...
| Заголовок: | #include <QNetworkAddressEntry> |
| qmake: | QT += network |
| С тех пор: | Qt 4.2 |
Этот класс был представлен в Qt 4.2.
Примечание: Все функции в этом классе являются взаимоисключающими.
Общие типы
| Перечисление | 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) |
Подробное описание
Каждый сетевой интерфейс может содержать ноль или более 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(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().
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() возвращает нулевой 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.
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.15/qnetworkaddressentry.html