web-dev-qa-db-fra.com

L'option curl --resolve ne fonctionne pas: "Le nom d'hôte N'A PAS été trouvé dans le cache DNS"

J'essaie d'utiliser l'option --resolve de curl pour me connecter à l'adresse IP spécifiée lors de l'exécution de la requête HTTP, mais curl continue de revenir à l'adresse IP telle qu'elle a été récupérée par mon cache/résolveur DNS local.

Commander:

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

(où example.com est remplacé par mon nom de domaine et 1.1.1.1 par l'adresse IP de destination souhaitée)

Résultat:

* 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

(où 2.2.2.2 est remplacé par l'adresse IP mise en cache dans mon résolveur DNS local pour mon nom de domaine)

Il semble donc que curl tente d'ajouter 1.1.1.1 au cache DNS pour example.com, mais échoue d'une manière ou d'une autre et rétablit l'adresse IP d'origine.

Des idées sur la façon de résoudre ce problème ou de résoudre d'autres problèmes pour savoir pourquoi cela ne fonctionne pas?

4
iglvzx

Après avoir essayé cela avec d'autres noms de domaine, j'ai constaté que le problème était dû au fait que les noms de domaine ne correspondaient pas dans l'option --resolve et l'URL (l'un avait wwwname__, l'autre non). Erreur de l'utilisateur!

Incorrect:

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

Correct:

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