我正在使用QnetworkAccessManager发出HTTP请求,我想知道何时解析FQDN(DNS解析)以获取IP地址或IP地址列表。
QNetworkAccessManager 如何从已解析的 IP 列表中选择 IP 来发送请求?
QNetworkAccessManager是否保留DNS解析的缓存?
QNetworkAccessManager
使用QAbstractSocket
包括解析主机名的能力。 QAbstractSocket
使用QHostInfo::lookupHost
来获取指定主机的IP列表(QHostInfo::addresses
)。 QAbstractSocket
尝试连接到每个QHostInfo::addresses
,直到连接成功。
无法知道使用了哪个地址QNetworkAccessManager
因为它不会向用户公开使用的套接字。您可以使用公共 API 获取完整的地址列表QHostInfo
。
QHostInfo
具有内部全局缓存,最多可存储 128 个项目,最长期限为 1 分钟。