Опция 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/