[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,099 次)