在QNetworkAccessManager中,从IP列表中选择IP解析DNS?

时间:2015-04-27 09:41:27

标签: qt http qtwebkit qnetworkaccessmanager qnetworkrequest

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

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

QNetworkAccessManager是否保留DNS解析缓存?

1 个答案:

答案 0 :(得分:1)

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

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

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