1

Curl 有一个选项,允许我指定域应该解析到哪个 IP

e.g. curl --resolve example.com:443:1.2.3.4 https://example.com/foo

确保调用了一个非常特定的服务器(例如,当多个服务器具有相同的虚拟主机时,通常在其前面有一个负载平衡器,并且有多个应用程序在具有不同虚拟主机的同一端口上运行)

使用 Ethon 时如何设置此值?https://github.com/typhoeus/ethon

这就是我期望它的工作方式

Ethon::Easy.new(url: "https://example.com/foo", :resolve => "example.com:443:1.2.3.4")

但我得到了一个无效的值异常(我尝试了多种不同的格式)

Ethon::Errors::InvalidValue: The value: example.com:443:1.2.3.4 is invalid for option: resolve.

我查看了代码,但无法弄清楚我必须如何提供价值 - 并且这方面的文档有点稀缺

提前感谢任何可能为我指明正确方向的回复

4

1 回答 1

0

感谢 Github 上的 i0rek,我得到了我正在寻找的答案:

resolve = nil
Ethon::Curl.slist_append(resolve, "example.com:443:1.2.3.4")
e = Ethon::Easy.new(url: "https://example.com/foo", :resolve => resolve)
#=> #<Ethon::Easy:0x007faca2574f30 @url="https://example.com/foo", ...>

更多信息可以在这里找到: https ://github.com/typhoeus/ethon/issues/95#event-199961240

于 2014-11-28T16:32:13.327 回答