Как указать сетевой интерфейс с Фарадеем Руби?

Я использую Faraday, который объединяет различные адаптеры, включая Net::HTTP, Excon, Typhoeus, Patron и EventMachine. Я хотел бы указать сетевой интерфейс (например, en0 или en1), но я не уверен, как и возможно ли это. Я был бы открыт для ответов на уровне Ruby или на уровне Linux.

Примечание. Согласно Выполнение HTTP-запросов с разных сетевых интерфейсов с помощью Ruby и Curb, это возможно с помощью Curb< /а>.


person David J.    schedule 07.08.2012    source источник


Ответы (3)


Я думаю, что это даже возможно сделать с Фарадеем и Тифеем: nofollow">https://github.com/typhoeus/typhoeus/blob/92d19df7af06034ae28996e097676b01301042f5/lib/typhoeus/adapters/faraday.rb#L139.

person i0rek    schedule 08.06.2013

Не уверен, что можно выполнить привязку к конкретному сетевому интерфейсу, но с Фарадеем вы можете установить параметр запроса с :bind на {:host => "<your_ip>", :port => "<your_port>" }, чтобы указать хотя бы IP-адрес и порт.

Насколько я знаю, адаптеры em-http, em-syncrony, httpclient и typhoeus учитывают эти настройки.

person spariev    schedule 13.09.2013

Я столкнулся с этой проблемой с Typhoeus (без использования Faraday) и привязкой к определенному локальному интерфейсу. Для меня работало следующее:

options = {
  interface: '<ip address>'
}
req = Typhoeus::Request.new("https://example.com/3", options)
person Brian Olney    schedule 03.06.2016