कर्ल - समाधान कुछ भी नहीं करने के लिए प्रकट होता है


35

--helpकर्ल के लिए उत्पादन एक को सूचीबद्ध --resolveविकल्प है, जो राज्यों

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

मुझे कोई किस्मत नहीं मिल रही है हालांकि यह काम करने के लिए। मैं जिस मूल कमांड को चलाने का प्रयास कर रहा हूं वह है

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

और मुझे प्रतिक्रिया मिलती रहती है Couldn't resolve host 'foo.example.com'। मैं ऐसा करना चाहता हूं क्योंकि मैं foo.example.com के लिए प्रमाणपत्र का परीक्षण कर रहा हूं, लेकिन मैं वास्तविक सर्वर पर इसका परीक्षण नहीं कर रहा हूं। इसके बजाय, मैं इसे डमी मशीन पर परीक्षण कर रहा हूं। मुझे पता है कि मैं संपादित कर सकता हूं /etc/hostsताकि foo.example.com लोकलहोस्ट के लिए हल हो जाए, लेकिन यह कर्ल दृष्टिकोण ऐसा लगता है कि यह जाने के लिए "सही" तरीका होगा, अगर मैं इसे काम कर सकता हूं।

क्या कोई देखता है कि मैं यहाँ क्या कर रहा हूँ?

जवाबों:


58

ऐसा प्रतीत होता है कि addressएक संख्यात्मक आईपी पता होना चाहिए, न कि एक होस्टनाम।

इसे इस्तेमाल करे:

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

इसका मतलब यह है कि DNS दुनिया में, का resolveअर्थ है "एक नाम से एक आईपी पता प्राप्त करें"।
विलेयसल्पीउरोमैन

4

समस्या निवारण में कुछ अतिरिक्त मदद:

सुनिश्चित करें कि आप प्रोटोकॉल के लिए सही पोर्ट सुन रहे हैं: http = 80; https = 443 और आदि

इसके अलावा कर्ल -v प्रतिक्रिया सर्वर के लिए हेडर की जानकारी देगा जो सहायक हो सकता है।

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>

मूल रूप से इस मामले में सीडीएन के लिए किनारे पर सर्वर HTTP विकल्प लागू नहीं किया गया था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.