Класс 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 |
Подробное описание
Каждый сетевой интерфейс может содержать ноль или более 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.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qnetworkaddressentry.html