Pregunta

I'm using Faraday which wraps various adapters, including Net::HTTP, Excon, Typhoeus, Patron, and EventMachine. I would like to specify the network interface (e.g. en0 or en1), but I'm not sure how or if it is possible. I'd be open to answers at the Ruby level or the Linux level.

Note: According to Making HTTP requests from different network interfaces with Ruby and Curb, this is possible with Curb.

¿Fue útil?

Otros consejos

Not sure if it is possible to bind to specific network interface, but with Faraday you can set request option :bind to {:host => "<your_ip>", :port => "<your_port>" } to specify at least IP address and port.

As far as I know em-http, em-synchrony, httpclient & typhoeus adapters respect these settings.

I came across this issue with Typhoeus (not using Faraday) and binding to a specific local interface. The following worked for me:

options = {
  interface: '<ip address>'
}
req = Typhoeus::Request.new("https://example.com/3", options)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top