В QNetworkAccessManager Когда IP выбран из списка разрешенных IP-адресов DNS?
Я использую QnetworkAccessManager для выполнения HTTP-запроса. Я хочу знать, когда разрешается полное доменное имя (разрешение DNS), чтобы получить IP-адрес или список IP-адресов.
Как QNetworkAccessManager выбирает IP-адрес из списка разрешенных IP-адресов для отправки запроса?
Сохраняет ли QNetworkAccessManager кэш разрешения DNS?
1 ответ
QNetworkAccessManager
использования QAbstractSocket
в том числе его способность разрешать имена хостов. QAbstractSocket
использования QHostInfo::lookupHost
чтобы получить список IP-адресов (QHostInfo::addresses
) указанного хоста. QAbstractSocket
пытается подключиться к каждому из QHostInfo::addresses
пока соединение не будет установлено.
Там нет никакого способа узнать, какой адрес был использован, потому что QNetworkAccessManager
не предоставляет использованные сокеты пользователю. Вы можете получить полный список адресов, используя QHostInfo
публичный API.
QHostInfo
имеет внутренний глобальный кеш, который хранит до 128 элементов с максимальным возрастом 1 минута.