В 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 минута.

Другие вопросы по тегам