curl --resolve a opção não está funcionando: “Hostname não foi encontrado no cache DNS”

4

Estou tentando usar a opção --resolve do curl para se conectar ao endereço IP especificado ao executar a solicitação HTTP, mas o curl continua voltando ao endereço IP conforme recuperado pelo cache / resolvedor DNS local.

Comando:

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

(onde example.com é substituído pelo meu nome de domínio e 1.1.1.1 foi substituído pelo endereço IP de destino desejado)

Resultado:

* 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

(onde 2.2.2.2 é substituído pelo endereço IP armazenado em cache no meu resolvedor DNS local para o meu nome de domínio)

Assim, parece que o curl tenta adicionar 1.1.1.1 ao cache DNS para example.com , mas falha de alguma forma e reverte para o endereço IP original.

Alguma idéia de como corrigir esse problema ou solucionar problemas adicionais para descobrir por que ele não está funcionando?

    
por iglvzx 20.02.2015 / 20:48

1 resposta

3

Depois de tentar isso com outros nomes de domínio, descobri que o problema estava sendo causado pelos nomes de domínio que não correspondiam na opção --resolve e no URL (um tinha www , o outro não). Erro do usuário!

Incorreto:

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

Correto:

curl -s -S -I -H "Host: example.com" --resolve example.com:80:1.1.1.1 --verbose http://example.com/
    
por iglvzx 20.02.2015 / 20:55

Tags