curl –resolve не работает: «Имя хоста не было найдено в кеше DNS»

Я --resolve параметр --resolve для подключения к указанному IP-адресу при выполнении HTTP-запроса, но curl продолжает возвращаться к IP-адресу, полученному моим локальным DNS-кешем / резольвером.

Команда:

 curl -s -S -I -H "Host: example.com" --resolve example.com:80:1.1.1.1 --verbose http://example.com/ 

(где example.com заменяется моим доменным именем и заменяется 1.1.1.1 на желаемый IP-адрес назначения)

Результат:

 * Added example.com:80:1.1.1.1 to DNS cache * Hostname was NOT found in DNS cache * Trying 2.2.2.2... * Connected to example.com (2.2.2.2) port 80 (#0) > HEAD / HTTP/1.1 > User-Agent: curl/7.35.0 > Accept: */* > Host: example.com 

(где 2.2.2.2 заменяется IP-адресом, кэшированным в моем локальном DNS-преобразователе для моего доменного имени)

Таким образом, похоже, что curl пытается добавить 1.1.1.1 в кэш DNS для example.com , но как-то не работает и возвращается к исходному IP-адресу.

Любые идеи по устранению этой проблемы или устранению неполадок, чтобы узнать, почему она не работает?

Попробовав это с другими именами доменов, я обнаружил, что проблема вызвана именами доменов, которые не совпадают в опции --resolve и URL (у одного был www , другой – нет). Ошибка пользователя!

Неправильно:

 curl -s -S -I -H "Host: example.com" --resolve example.com:80:1.1.1.1 --verbose http://www.example.com/ 

Верный:

 curl -s -S -I -H "Host: example.com" --resolve example.com:80:1.1.1.1 --verbose http://example.com/