The QHostAddress 类提供 IP 地址。 更多...
| 头: | #include <QHostAddress> |
| enum | SpecialAddress { Null, LocalHost, LocalHostIPv6, Broadcast, Any, AnyIPv6 } |
| QHostAddress () | |
| QHostAddress (quint32 ip4Addr ) | |
| QHostAddress (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 | isNull () const |
| QAbstractSocket::NetworkLayerProtocol | protocol () const |
| QString | scopeId () const |
| void | setAddress (quint32 ip4Addr ) |
| void | setAddress (quint8 * ip6Addr ) |
| void | setAddress (const Q_IPV6ADDR & ip6Addr ) |
| bool | setAddress (const QString & address ) |
| void | setAddress (const sockaddr * sockaddr ) |
| void | setScopeId (const QString & id ) |
| quint32 | toIPv4Address () const |
| Q_IPV6ADDR | toIPv6Address () const |
| QString | toString () const |
| bool | operator!= (const QHostAddress & other ) const |
| bool | operator!= (SpecialAddress other ) const |
| 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 ) |
| QDataStream & | operator<< (QDataStream & out , const QHostAddress & address ) |
| QDataStream & | operator>> (QDataStream & in , QHostAddress & address ) |
The 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::Null
|
0
|
null 地址对象。相当于 QHostAddress (). |
QHostAddress::LocalHost
|
2
|
Pv4 本地主机地址。相当于 QHostAddress ("127.0.0.1")。 |
QHostAddress::LocalHostIPv6
|
3
|
IPv6 本地主机地址。相当于 QHostAddress ("::1"). |
QHostAddress::Broadcast
|
1
|
IPv4 广播地址。相当于 QHostAddress ("255.255.255.255")。 |
QHostAddress::Any
|
4
|
IPv4 任意地址。相当于 QHostAddress ("0.0.0.0"). |
QHostAddress::AnyIPv6
|
5
|
IPv6 任意地址。相当于 QHostAddress ("::"). |
Constructs a host address object with the IP address 0.0.0.0.
另请参阅 clear ().
构造主机地址对象采用 IPv4 地址 ip4Addr .
构造主机地址对象采用 IPv6 地址 ip6Addr .
ip6Addr 必须是网络字节序 (大端在前) 的 16 字节数组。
构造主机地址对象采用 IPv6 地址 ip6Addr .
构造 IPv4 或 IPv6 地址使用指定地址通过本机结构 sockaddr .
另请参阅 setAddress ().
构造 IPv4 或 IPv6 地址基于字符串 address (如 127.0.0.1)。
另请参阅 setAddress ().
构造副本为给定 address .
构造 QHostAddress 对象为 address .
销毁主机地址对象。
Sets the host address to 0.0.0.0.
Returns true if this IP is in the subnet described by the network prefix subnet and netmask netmask .
An IP is considered to belong to a subnet if it is contained between the lowest and the highest address in that subnet. In the case of IP version 4, the lowest address is the network address, while the highest address is the broadcast address.
The subnet argument does not have to be the actual network address (the lowest address in the subnet). It can be any valid IP belonging to that subnet. In particular, if it is equal to the IP address held by this object, this function will always return true (provided the netmask is a valid value).
该函数在 Qt 4.5 引入。
另请参阅 parseSubnet ().
这是重载函数。
Returns true if this IP is in the subnet described by subnet 。 QHostAddress member of subnet contains the network prefix and the int (second) member contains the netmask (prefix length).
该函数在 Qt 4.5 引入。
Returns true if this host address is null (INADDR_ANY or in6addr_any). The default constructor creates a null address, and that address is not valid for any host or interface.
[static]
QPair
<
QHostAddress
,
int
> QHostAddress::
parseSubnet
(const
QString
&
subnet
)
Parses the IP and subnet information contained in subnet and returns the network prefix for that network and its prefix length.
The IP address and the netmask must be separated by a slash (/).
此函数支持的自变量形式:
For IP version 4, this function accepts as well missing trailing components (i.e., less than 4 octets, like "192.168.1"), followed or not by a dot. If the netmask is also missing in that case, it is set to the number of octets actually passed (in the example above, it would be 24, for 3 octets).
该函数在 Qt 4.5 引入。
另请参阅 isInSubnet ().
返回主机地址的网络层协议。
返回 IPv6 地址的作用域 ID。对于 IPv4 地址,或者若地址不包含作用域 ID,空 QString 被返回。
The IPv6 scope ID specifies the scope of reachability for non-global IPv6 addresses, limiting the area in which the address can be used. All IPv6 addresses are associated with such a reachability scope. The scope ID is used to disambiguate addresses that are not guaranteed to be globally unique.
IPv6 specifies the following four levels of reachability:
When using a link-local or site-local address for IPv6 connections, you must specify the scope ID. The scope ID for a link-local address is usually the same as the interface name (e.g., "eth0", "en1") or number (e.g., "1", "2").
该函数在 Qt 4.1 引入。
另请参阅 setScopeId ().
设置 IPv4 地址指定通过 ip4Addr .
这是重载函数。
设置 IPv6 地址指定通过 ip6Addr .
ip6Addr must be an array of 16 bytes in network byte order (high-order byte first).
这是重载函数。
设置 IPv6 地址指定通过 ip6Addr .
这是重载函数。
Sets the IPv4 or IPv6 address specified by the string representation specified by address (e.g. "127.0.0.1"). Returns true and sets the address if the address was successfully parsed; otherwise returns false.
这是重载函数。
Sets the IPv4 or IPv6 address specified by the native structure sockaddr . Returns true and sets the address if the address was successfully parsed; otherwise returns false.
Sets the IPv6 scope ID of the address to id . If the address protocol is not IPv6, this function does nothing.
该函数在 Qt 4.1 引入。
另请参阅 scopeId ().
以数字形式返回 IPv4 地址。
例如:若地址为 127.0.0.1,返回值为 2130706433 (即 0x7f000001)。
This value is only valid if the Protocol() is IPv4Protocol .
另请参阅 toString ().
以 Q_IPV6ADDR 结构形式返回 IPv6 地址。结构由 16 个无符号字符组成。
Q_IPV6ADDR addr = hostAddr.toIPv6Address(); // addr contains 16 unsigned characters for (int i = 0; i < 16; ++i) { // process addr[i] }
This value is only valid if the protocol () 是 IPv6Protocol .
另请参阅 toString ().
以字符串形式返回地址。
For example, if the address is the IPv4 address 127.0.0.1, the returned string is "127.0.0.1". For IPv6 the string format will follow the RFC5952 recommendation.
另请参阅 toIPv4Address ().
Returns true if this host address is not the same as the other address given; otherwise returns false.
该函数在 Qt 4.2 引入。
Returns true if this host address is not the same as the other address given; otherwise returns false.
赋值另一主机 address 到此对象,并返回此对象的引用。
赋值主机地址 address 到此对象,并返回此对象的引用。
另请参阅 setAddress ().
Returns true if this host address is the same as the other address given; otherwise returns false.
Returns true if this host address is the same as the other address given; otherwise returns false.
写入主机地址 address 到流 out 并返回流引用。
另请参阅 序列化 Qt 数据类型 .
把主机地址读入 address 从流 in 并返回流引用。
另请参阅 序列化 Qt 数据类型 .