[Linux/Mac] 使用 curl –resolve 選項,強制指定 FQDN 對應到的 IP 位址

[Linux/Mac] 使用 curl –resolve 選項,強制指定 FQDN 對應到的 IP 位址

現在在開發 Azure 上的程式,

有時候放了好幾套環境,用同一個 FQDN 指向不同的 IP 位址來切換。

不過,一直去改 DNS 伺服器上的設定不太方便,

所以可能會直接改 /etc/hosts,例如:

1.2.3.4 endpoint.test.com

 

不過有時我只是想比較不同環境上,API 回傳的結果,

這樣每打一個 API 都要去改 /etc/hosts 實在太沒效率了…

幸好,curl 有提供一個  --resolve 選項,

可以直接將某個 FQDN 對應到某個 IP 位址上~

 

舉例來說,我在 1.2.3.4 和 1.2.3.5 這兩個環境上測試,

就可以用下面的 curl 指令,取得兩個環境 API 的回傳結果:

$ curl http://endpoint.test.com/version --resolve endpoint.test.com:80:1.2.3.4
{"version":"1.0.444"}

$ curl http://endpoint.test.com/version --resolve endpoint.test.com:80:1.2.3.5
{"version":"1.0.555"}

 

如果你要測試的是 HTTPS,要記得把 port 的地方也跟著修改,例如:

$ curl https://endpoint.test.com/version --resolve endpoint.test.com:443:1.2.3.4
{"version":"1.0.444"}

 

參考資料:Use cURL’s “–resolve” option to pin a request to an IP address

(本頁面已被瀏覽過 2,116 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料