1

我正在使用 QnetworkAccessManager 发出 HTTP 请求,我想知道 FQDN 何时被解析(DNS 解析)以获取 IP 地址或 IP 地址列表。

QNetworkAccessManager 如何从已解析的 IP 列表中选择 IP 来发送请求?

QNetworkAccessManager 是否保留 DNS 解析的缓存?

4

1 回答 1

1

QNetworkAccessManager用途QAbstractSocket包括其解析主机名的能力。QAbstractSocket用于QHostInfo::lookupHost获取QHostInfo::​addresses指定主机的 IP ( ) 列表。QAbstractSocket尝试连接到每个,QHostInfo::​addresses直到连接成功。

无法知道使用了哪个地址,因为QNetworkAccessManager不会向用户公开使用过的套接字。QHostInfo您可以使用公共 API获取完整的地址列表。

QHostInfo具有内部全局缓存,最多可存储 128 个项目,最长期限为 1 分钟。

于 2015-04-27T17:25:27.290 回答