рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдореЛрдЬреЗ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдлреИрд░рд╛рдбреЗ :: рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓: рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрдВрдд рдкрд╣реБрдВрдЪ рдЧрдпрд╛
рдлреИрд░рд╛рдбреЗ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ
Faraday.new do |connection|
connection.proxy = "socks://user:pass<strong i="14">@host</strong>:port"
connection.adapter Faraday.default_adapter
end
рдФрд░ рдХреЛрдИ рднреА рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ
рдореИрдВ рдлреИрд░рд╛рдбреЗ :: рдПрдбреЗрдкреНрдЯрд░ :: рдиреЗрдЯрдПрдЪрдЯреАрдкреА рдкреИрдЪрд┐рдВрдЧ рдмрдВрджрд░ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд┐рд░реНрдгрдп рдерд╛
рдирдорд╕реНрддреЗ @yarafan , рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдХреНрдпрд╛ рдореИрдВ рдЖрдкрд╕реЗ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдиреЗ Faraday::Adapter::NetHttp
рдмрдВрджрд░-рдкреИрдЪ рдХреИрд╕реЗ рдХрд┐рдпрд╛?
рдореИрдВ рдордгрд┐ 'socksify' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ
require "socksify/http"
class Faraday::Adapter::NetHttp
def net_http_connection(env)
if (proxy = env[:request][:proxy])
proxy_class(proxy)
else
Net::HTTP
end.new(env[:url].hostname, env[:url].port || (env[:url].scheme == "https" ? 443 : 80))
end
def proxy_class(proxy)
if proxy.uri.scheme == "socks"
TCPSocket.socks_username = proxy[:user] if proxy[:user]
TCPSocket.socks_password = proxy[:password] if proxy[:password]
Net::HTTP::SOCKSProxy(proxy[:uri].host, proxy[:uri].port)
else
Net::HTTP::Proxy(proxy[:uri].host, proxy[:uri].port, proxy[:uri].user, proxy[:uri].password)
end
end
end
@yarafan рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ, рдЗрд╕рд▓рд┐рдП рдореВрд▓ рд░реВрдк рд╕реЗ Net::HTTP
рдореЛрдЬреЗ рдкреНрд░реЙрдХреНрд╕реА рдЖрдЙрдЯ-рдСрдл-рдж-рдмреЙрдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рдЗрд╕реЗ рдмрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореЛрдЬреЗ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдзрд┐рдХред
рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдХреЗ рд░реВрдк рдореЗрдВ, рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди 0.x рд╢рд╛рдЦрд╛ рдореЗрдВ рд╕рднреА рдПрдбреЗрдкреНрдЯрд░ рдХреЗ рд▓рд┐рдП рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐ v1.0 рд╢рд╛рдЦрд╛ рдХреЗ рд▓рд┐рдП рд╣рдо рд╕рднреА рдПрдбреЗрдкреНрдЯрд░ рдХреЛ рдлреИрд░рд╛рдбреЗ рд╕реЗ рдмрд╛рд╣рд░ рд▓реЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдиреЗрдЯ :: рдПрдЪрдЯреАрдЯреАрдкреА рдХреЛ рдЕрдВрджрд░ рд░рдЦ рд░рд╣реЗ рд╣реИрдВред
рдЗрд╕реЗ рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдордп рд╣реЛрдЧрд╛
рдореИрдВ рд╢реАрд░реНрд╖рдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд▓реЗрдмрд▓ рдХрд░реВрдВрдЧрд╛, рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдореЛрдЬреЗ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдЖрдкрдХреЗ рдмрдВрджрд░-рдкреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
Net::HTTP.SOCKSProxy рдореЗрдВ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рдорд░реНрдерди рдЬреЛрдбрд╝реЗрдВ
https://github.com/astro/socksify-ruby/pull/24/files
рдореИрдВ рдареАрдХ рдпрд╣реА рдХрд░рдиреЗ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реВрдВ
рдЧреБрдб рдЬреЙрдм @yarafan
рдирдорд╕реНрддреЗред рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реНрдерд┐рддрд┐ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЕрдзреАрди рд╣реИ?
рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдВрджрд░ рдкреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА
@gcolson рд╣рд╛рдБ @technoweenie рдиреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рдо рдкрд╣рд▓реЗ рд╣реА рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рдЖрд╢реНрд░рд┐рдд рдкреАрдЖрд░ рдХреЗ рд╡рд┐рд▓рдп рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦреЗрдВ: https://github.com/lostisland/faraday/pull/992#issuecomment -508437342
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВ рдордгрд┐ 'socksify' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ