1

我正在使用封装了各种适配器的Faraday,包括 Net::HTTP、Excon、Typhoeus、Patron 和 EventMachine。我想指定网络接口(例如en0en1),但我不确定如何或是否可能。我愿意接受 Ruby 级别或 Linux 级别的答案。

注意:根据使用 Ruby 和 Curb 从不同网络接口发出 HTTP 请求,使用Curb可以做到这一点。

4

3 回答 3

3

我认为使用 Faraday 和 Typhoeus 甚至可以做到这一点:https ://github.com/typhoeus/typhoeus/blob/92d19df7af06034ae28996e097676b01301042f5/lib/typhoeus/adapters/faraday.rb#L139 。

于 2013-06-08T19:54:11.320 回答
1

不确定是否可以绑定到特定的网络接口,但使用 Faraday,您可以将请求选项设置:bind{:host => "<your_ip>", :port => "<your_port>" }至少指定 IP 地址和端口。

据我所知,em-http、em-synchrony、httpclient 和 typhoeus 适配器尊重这些设置。

于 2013-09-13T11:15:34.430 回答
0

我在 Typhoeus(不使用法拉第)和绑定到特定的本地接口时遇到了这个问题。以下对我有用:

options = {
  interface: '<ip address>'
}
req = Typhoeus::Request.new("https://example.com/3", options)
于 2016-06-03T12:38:18.027 回答