Spec-Zone.ru › Qt 5.6

Класс QHostAddress

Класс QHostAddress предоставляет IP-адрес. Подробнее...

Заголовок: #include <QHostAddress>
qmake: QT += network
  • Список всех членов, включая унаследованные

Типы публичного доступа

Перечисление SpecialAddress { Null, LocalHost, LocalHostIPv6, Broadcast, ..., Any }

Функции публичного доступа

QHostAddress()
QHostAddress(quint32 ip4Addr)
QHostAddress(quint8 *ip6Addr)
QHostAddress(const quint8 *ip6Addr)
QHostAddress(const Q_IPV6ADDR &ip6Addr)
QHostAddress(const sockaddr *sockaddr)
QHostAddress(const QString &address)
QHostAddress(const QHostAddress &address)
QHostAddress(SpecialAddress address)
~QHostAddress()
void clear()
bool isInSubnet(const QHostAddress &subnet, int netmask) const
bool isInSubnet(const QPair<QHostAddress, int> &subnet) const
bool isLoopback() const
bool isMulticast() const
bool isNull() const
QAbstractSocket::NetworkLayerProtocol protocol() const
QString scopeId() const
void setAddress(quint32 ip4Addr)
void setAddress(quint8 *ip6Addr)
void setAddress(const quint8 *ip6Addr)
void setAddress(const Q_IPV6ADDR &ip6Addr)
void setAddress(const sockaddr *sockaddr)
bool setAddress(const QString &address)
void setScopeId(const QString &id)
void swap(QHostAddress &other)
quint32 toIPv4Address() const
quint32 toIPv4Address(bool *ok) const
Q_IPV6ADDR toIPv6Address() const
QString toString() const
bool operator!=(const QHostAddress &other) const
bool operator!=(SpecialAddress other) const
QHostAddress & operator=(QHostAddress &&other)
QHostAddress & operator=(const QHostAddress &address)
QHostAddress & operator=(const QString &address)
bool operator==(const QHostAddress &other) const
bool operator==(SpecialAddress other) const

Статические члены публичного доступа

QPair<QHostAddress, int> parseSubnet(const QString &subnet)

Связанные нечлены

uint qHash(const QHostAddress &key, uint seed = 0)
QDataStream & оператор<<(QDataStream &out, const QHostAddress &address)
bool оператор==(QHostAddress::SpecialAddress lhs, const QHostAddress &rhs)
QDataStream & оператор>>(QDataStream &in, QHostAddress &address)

Подробное описание

Класс QHostAddress предоставляет IP-адрес.

Этот класс хранит IPv4 или IPv6 адрес независимо от платформы и протокола.

QHostAddress обычно используется с QTcpSocket, QTcpServer и QUdpSocket для подключения к хосту или для настройки сервера.

Адрес хоста устанавливается с помощью setAddress(), а извлекается с помощью toIPv4Address(), toIPv6Address() или toString(). Тип можно проверить с помощью protocol().

Примечание: Обратите внимание, что QHostAddress не выполняет DNS-поиски. Для этого нужен QHostInfo.

Класс также поддерживает стандартные предопределенные адреса: Null, LocalHost, LocalHostIPv6, Broadcast и Any.

См. также QHostInfo, QTcpSocket, QTcpServer и QUdpSocket.

Документация типов членов

перечисление QHostAddress::SpecialAddress

Константа Значение Описание
QHostAddress::Null 0 Объект адреса без значения. Эквивалент QHostAddress().
QHostAddress::LocalHost 2 Адрес IPv4 локального хоста. Эквивалент QHostAddress("127.0.0.1").
QHostAddress::LocalHostIPv6 3 Адрес IPv6 локального хоста. Эквивалент QHostAddress("::1").
QHostAddress::Broadcast 1 Адрес IPv4 широковещания. Эквивалент QHostAddress("255.255.255.255").
QHostAddress::AnyIPv4 6 Любой адрес IPv4. Эквивалент QHostAddress("0.0.0.0"). Сокет, привязанный к этому адресу, будет слушать только на IPv4 интерфейсах.
QHostAddress::AnyIPv6 5 Любой адрес IPv6. Эквивалент QHostAddress("::"). Сокет, привязанный к этому адресу, будет слушать только на IPv6 интерфейсах.
QHostAddress::Any 4 Любой адрес двойной стековой (IPv4 и IPv6). Сокет, привязанный к этому адресу, будет слушать на IPv4 и IPv6 интерфейсах.

Документация функций-членов

QHostAddress::QHostAddress()

Создаёт объект адреса хоста без значения, т.е. адрес, не являющийся корректным для любого хоста или интерфейса.

См. также clear().

QHostAddress::QHostAddress(quint32 ip4Addr)

Создаёт объект адреса хоста с адресом IPv4 ip4Addr.

QHostAddress::QHostAddress(quint8 *ip6Addr)

Создаёт объект адреса хоста с адресом IPv6 ip6Addr.

ip6Addr должен быть массивом из 16 байтов в сетевом порядке байтов (big endian).

QHostAddress::QHostAddress(const quint8 *ip6Addr)

Создаёт объект адреса хоста с адресом IPv6 ip6Addr.

ip6Addr должен быть массивом из 16 байтов в сетевом порядке байтов (big endian).

Эта функция была добавлена в Qt 5.5.

QHostAddress::QHostAddress(const Q_IPV6ADDR &ip6Addr)

Создаёт объект адреса хоста с адресом IPv6 ip6Addr.

QHostAddress::QHostAddress(const sockaddr *sockaddr)

Создаёт адрес IPv4 или IPv6, используя адрес, указанный в структуре sockaddr.

См. также setAddress().

QHostAddress::QHostAddress(const QString &address)

Создаёт адрес IPv4 или IPv6, основанный на строке address (например, "127.0.0.1").

См. также setAddress().

QHostAddress::QHostAddress(const QHostAddress &address)

Создаёт копию заданного адреса address.

QHostAddress::QHostAddress(SpecialAddress address)

Создаёт объект QHostAddress для address.

QHostAddress::~QHostAddress()

Удаляет объект адреса хоста.

void QHostAddress::clear()

Устанавливает адрес хоста в 0.0.0.0.

bool QHostAddress::isInSubnet(const QHostAddress &subnet, int netmask) const

Возвращает true , если данный IP-адрес находится в подсети, описанной сетевым префиксом subnet и маской сети netmask.

IP-адрес считается принадлежащим подсети, если он находится между наименьшим и наибольшим адресами в этой подсети. В случае IP версии 4, наименьший адрес — это сетевой адрес, а наибольший — адрес широковещания.

Аргумент subnet не обязательно должен быть фактическим сетевым адресом (наименьшим адресом в подсети). Это может быть любой допустимый IP-адрес, принадлежащий этой подсети. В частности, если он равен IP-адресу, содержащемуся в этом объекте, эта функция всегда вернёт true (при условии, что маска сети — это допустимое значение).

Эта функция была добавлена в Qt 4.5.

См. также parseSubnet().

bool QHostAddress::isInSubnet(const QPair<QHostAddress, int> &subnet) const

Это перегруженная функция.

Возвращает true , если данный IP-адрес находится в подсети, описанной subnet. Член QHostAddress в subnet содержит сетевой префикс, а член int (второй) содержит маску подсети (длина префикса).

Эта функция была добавлена в Qt 4.5.

bool QHostAddress::isLoopback() const

Возвращает true, если адрес является адресом обратной связи IPv6 или любым из адресов обратной связи IPv4.

Эта функция была добавлена в Qt 5.0.

bool QHostAddress::isMulticast() const

Возвращает true, если адрес является адресом мультикаста IPv4 или IPv6, false в противном случае.

Эта функция была добавлена в Qt 5.6.

bool QHostAddress::isNull() const

Возвращает true, если адрес хоста равен null (INADDR_ANY или in6addr_any). Конструктор по умолчанию создаёт нулевой адрес, и этот адрес не является корректным для любого хоста или интерфейса.

[static] QPair<QHostAddress, int> QHostAddress::parseSubnet(const QString &subnet)

Парсит IP и информацию о подсети, содержащиеся в subnet, и возвращает сетевой префикс для этой сети и её длину префикса.

IP-адрес и маска сети должны быть разделены слешем (/).

Функция поддерживает аргументы в формате:

  • 123.123.123.123/n, где n — любое значение от 0 до 32
  • 123.123.123.123/255.255.255.255
  • <ipv6-address>/n, где n — любое значение от 0 до 128

Для IP версии 4 функция также принимает пропущенные заключительные компоненты (т.е. меньше 4 октетов, как "192.168.1"), с или без точки. Если маска подсети также отсутствует в этом случае, она устанавливается в количество фактически переданных октетов (в приведённом выше примере это будет 24 для 3 октетов).

Эта функция была добавлена в Qt 4.5.

См. также isInSubnet().

QAbstractSocket::NetworkLayerProtocol QHostAddress::protocol() const

Возвращает протокол сетевого уровня адреса хоста.

QString QHostAddress::scopeId() const

Возвращает идентификатор области действия адреса IPv6. Для адресов IPv4 или если адрес не содержит идентификатор области действия, возвращается пустая строка QString.

Идентификатор области действия IPv6 определяет область действия доступности для адресов IPv6, не являющихся глобальными, ограничивая область, в которой может использоваться адрес. Все адреса IPv6 связаны с такой областью доступности. Идентификатор области действия используется для устранения неоднозначности адресов, которые не гарантированно уникальны во всём мире.

IPv6 определяет следующие четыре уровня доступности:

  • Локальный для узла: Адреса, используемые только для связи с сервисами на том же интерфейсе (например, интерфейс обратной связи "::1").
  • Локальный для канала связи: Адреса, локальные для сетевого интерфейса (канала связи). Для каждого интерфейса IPv6 на вашем хосте всегда существует один локальный адрес для канала связи. Локальные адреса для канала связи ("fe80...") генерируются из MAC-адреса локального сетевого адаптера и не гарантируют уникальность.
  • Глобальный: Для глобально маршрутизируемых адресов, таких как общедоступные серверы в Интернете.

При использовании локального для канала связи или локального для сайта адреса для подключений IPv6, вам необходимо указать идентификатор области действия. Идентификатор области действия для локального адреса для канала связи обычно совпадает с именем интерфейса (например, "eth0", "en1") или номером (например, "1", "2").

Эта функция была добавлена в Qt 4.1.

См. также setScopeId(), QNetworkInterface и QNetworkInterface::interfaceFromName.

void QHostAddress::setAddress(quint32 ip4Addr)

Устанавливает адрес IPv4, указанный в ip4Addr.

void QHostAddress::setAddress(quint8 *ip6Addr)

Это перегруженная функция.

Устанавливает адрес IPv6, указанный в ip6Addr.

ip6Addr должен быть массивом из 16 байтов в сетевом порядке байтов (старший байт вначале).

void QHostAddress::setAddress(const quint8 *ip6Addr)

Это перегруженная функция.

Устанавливает адрес IPv6, указанный в ip6Addr.

ip6Addr должен быть массивом из 16 байтов в сетевом порядке байтов (старший байт вначале).

Эта функция была добавлена в Qt 5.5.

void QHostAddress::setAddress(const Q_IPV6ADDR &ip6Addr)

Это перегруженная функция.

Устанавливает IPv6-адрес, заданный параметром ip6Addr.

void QHostAddress::setAddress(const sockaddr *sockaddr)

Это перегруженная функция.

Устанавливает IPv4 или IPv6-адрес, заданный структурой sockaddr. Возвращает true и устанавливает адрес, если адрес был успешно проанализирован; в противном случае возвращает false.

bool QHostAddress::setAddress(const QString &address)

Это перегруженная функция.

Устанавливает IPv4 или IPv6-адрес, заданный строковым представлением address (например, "127.0.0.1"). Возвращает true и устанавливает адрес, если адрес был успешно проанализирован; в противном случае возвращает false.

void QHostAddress::setScopeId(const QString &id)

Устанавливает IPv6 идентификатор области адреса на id. Если протокол адреса не IPv6, эта функция ничего не делает. Идентификатор области может быть задан как имя интерфейса (например, "eth0" или "en1"), или как целое число, представляющее индекс интерфейса. Если id — имя интерфейса, QtNetwork преобразует его в индекс интерфейса, используя QNetworkInterface::interfaceIndexFromName(), перед вызовом функций сетевого стека операционной системы.

Эта функция была добавлена в Qt 4.1.

См. также scopeId(), QNetworkInterface и QNetworkInterface::interfaceFromName.

void QHostAddress::swap(QHostAddress &other)

quint32 QHostAddress::toIPv4Address() const

Возвращает IPv4-адрес как число.

Например, если адрес — 127.0.0.1, возвращаемое значение равно 2130706433 (т.е. 0x7f000001).

Это значение является допустимым, если protocol() — IPv4Protocol, или если протокол — IPv6Protocol, и IPv6-адрес является IPv4-адресом в формате IPv4. (RFC4291)

См. также toString().

quint32 QHostAddress::toIPv4Address(bool *ok) const

Возвращает IPv4-адрес как число.

Например, если адрес — 127.0.0.1, возвращаемое значение равно 2130706433 (т.е. 0x7f000001).

Это значение является допустимым, если protocol() — IPv4Protocol, или если протокол — IPv6Protocol, и IPv6-адрес является IPv4-адресом в формате IPv4. (RFC4291). В этих случаях ok будет установлен в true. В противном случае он будет установлен в false.

См. также toString().

Q_IPV6ADDR QHostAddress::toIPv6Address() const

Возвращает IPv6-адрес как структуру Q_IPV6ADDR. Структура состоит из 16 беззнаковых символов.

Q_IPV6ADDR addr = hostAddr.toIPv6Address();
// addr contains 16 unsigned characters

for (int i = 0; i < 16; ++i) {
    // process addr[i]
}

Это значение является допустимым, если protocol() — IPv6Protocol. Если протокол — IPv4Protocol, то возвращается адрес в виде IPv4-адреса в формате IPv6. (RFC4291)

См. также toString().

QString QHostAddress::toString() const

Возвращает адрес как строку.

Например, если адрес — IPv4-адрес 127.0.0.1, возвращаемая строка — "127.0.0.1". Для IPv6 формат строки соответствует рекомендации RFC5952. Для QHostAddress::Any возвращается его IPv4-адрес ("0.0.0.0")

См. также toIPv4Address().

bool QHostAddress::operator!=(const QHostAddress &other) const

Возвращает true, если этот адрес хоста не совпадает с указанным адресом other; в противном случае возвращает false.

Эта функция была добавлена в Qt 4.2.

bool QHostAddress::operator!=(SpecialAddress other) const

Возвращает true, если этот адрес хоста не совпадает с указанным адресом other; в противном случае возвращает false.

QHostAddress &QHostAddress::operator=(QHostAddress &&other)

Оператор присваивания перемещения.

QHostAddress &QHostAddress::operator=(const QHostAddress &address)

Присваивает другой адрес хоста address этому объекту и возвращает ссылку на этот объект.

QHostAddress &QHostAddress::operator=(const QString &address)

Присваивает адрес хоста address этому объекту и возвращает ссылку на этот объект.

См. также setAddress().

bool QHostAddress::operator==(const QHostAddress &other) const

Возвращает true, если этот адрес хоста совпадает с указанным адресом other; в противном случае возвращает false.

bool QHostAddress::operator==(SpecialAddress other) const

Возвращает true, если этот адрес хоста совпадает с указанным адресом other; в противном случае возвращает false.

Связанные внечлененные члены

uint qHash(const QHostAddress &key, uint seed = 0)

Возвращает хэш-значение для адреса хоста key, используя seed для инициализации вычисления.

Эта функция была добавлена в Qt 5.0.

QDataStream &operator<<(QDataStream &out, const QHostAddress &address)

Записывает адрес хоста address в поток out и возвращает ссылку на поток.

См. также Сериализация типов данных Qt.

bool operator==(QHostAddress::SpecialAddress lhs, const QHostAddress &rhs)

Возвращает true, если специальный адрес lhs совпадает с адресом хоста rhs; в противном случае возвращает false.

См. также isEqual().

QDataStream &operator>>(QDataStream &in, QHostAddress &address)

Считывает адрес хоста в address из потока in и возвращает ссылку на поток.

См. также Сериализация типов данных Qt.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qhostaddress.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API