Я пытаюсь использовать завихрение --resolve
опция соединиться с указанным IP-адресом при выполнении Запроса HTTP, но завихрения удерживает на месте возвращение к 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-адресу.
Какие-либо идеи о том, как решить эту проблему или диагностировать далее для обнаружения почему не работа?
Попробовав это с другими доменными именами, я обнаружил, что проблема вызвана тем, что доменные имена не совпадают в параметре --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/