我正在使用包含各种适配器的Faraday,包括Net :: HTTP,Excon,Typhoeus,Patron和EventMachine。我想指定网络接口(例如en0
或en1
),但我不确定如何或是否可能。我愿意接受Ruby级别或Linux级别的答案。
注意:根据Making HTTP requests from different network interfaces with Ruby and Curb,Curb可以实现这一点。
答案 0 :(得分:3)
我认为甚至可以用法拉第和台风来做到这一点:https://github.com/typhoeus/typhoeus/blob/92d19df7af06034ae28996e097676b01301042f5/lib/typhoeus/adapters/faraday.rb#L139。
答案 1 :(得分:1)
不确定是否可以绑定到特定的网络接口,但是使用法拉第,您可以将请求选项:bind
设置为{:host => "<your_ip>", :port => "<your_port>" }
以指定至少IP地址和端口。
据我所知em-http,em-synchrony,httpclient&amp; typhoeus适配器尊重这些设置。
答案 2 :(得分:0)
我遇到Typhoeus这个问题(不使用法拉第)并绑定到特定的本地接口。以下对我有用:
options = {
interface: '<ip address>'
}
req = Typhoeus::Request.new("https://example.com/3", options)