curl --resolve hiçbir şey yapmıyor gibi görünüyor


35

--helpKıvrılma için çıkış bir listeleyen --resolvehangi devletler seçeneği,

--resolve <host:port:address> Force resolve of HOST:PORT to ADDRESS

Yine de çalışmasını sağlama şansım yok. Çalıştırmaya çalıştığım temel komut

curl --resolve foo.example.com:443:localhost https://foo.example.com:443/

ve ben yanıt almaya devam ediyorum Couldn't resolve host 'foo.example.com'. Bunu yapmak istiyorum çünkü foo.example.com için bir sertifika test ediyorum, ancak gerçek sunucuda test etmiyorum. Bunun yerine, sahte bir makinede test ediyorum. /etc/hostsFoo.example.com adresinin localhost'a çözümlenmesi için düzenleyebileceğimi biliyorum , ancak bu kıvrılma yaklaşımı, çalışmasını sağlayabilirsem, gitmenin "doğru" yolu gibi görünüyor.

Burada neyi yanlış yaptığımı gören var mı?

Yanıtlar:


57

Ana addressbilgisayar adı değil, sayısal bir IP adresi olması gerektiği anlaşılıyor .

Bunu dene:

curl --resolve foo.example.com:443:127.0.0.1 https://foo.example.com:443/

Bu mantıklı çünkü DNS dünyasında resolve"bir addan bir IP adresi al" anlamına geliyor.
vastlysuperiorman

4

Sorun gidermede bazı ek yardımlar:

Protokol için doğru bağlantı noktasını dinlediğinizden emin olun: http = 80; https = 443 ve diğerleri

Ayrıca curl -v, HEADER'a yardımcı olabilecek yanıt sunucusu için bilgi verecektir.

curl -v --resolve foo.example.com:443:127.0.0.1 https://foo.example.com:443/
## The client request headers prepended by >
> OPTIONS /v1/..
> HOSTS foo.example.com
## The server response prepended by <
< HTTP/1.1 501 Not Implemented
## The html returned
<H1>Unsupported Request</H1>

Temel olarak, bu durumda, OPTIONS HTTP yöntemi, CDN'nin uç sunucusunda uygulanmamıştır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.