Опция curl --resolve не работает: "имя хоста не найдено в кеше DNS"

Я пытаюсь использовать локон --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 для моего доменного имени)

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

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

1 ответ

Решение

После попытки сделать это с другими доменными именами, я обнаружил, что проблема была вызвана доменными именами, не совпадающими в --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/
Другие вопросы по тегам