Integração

Use a Shifter com Ruby

Conecte os proxies residenciais e ISP da Shifter ao Ruby em minutos. Compatível com Net::HTTP, HTTParty, Faraday, Mechanize e Watir, funciona em scripts simples, Sinatra e Rails.

Início Rápido

Instalar

gem install httparty

Uso Básico

require 'httparty'

response = HTTParty.get(
  'https://ipinfo.io/json',
  http_proxyaddr: 'p.shifter.io',
  http_proxyport: 443,
  http_proxyuser: 'customer-USERNAME-country-us-sid-123ABC',
  http_proxypass: 'PASSWORD',
  timeout: 30
)

puts response.parsed_response
# {"ip" => "154.16.xxx.xxx", "city" => "New York", "country" => "US", ...}

Recursos

Suporte plug-and-play para Net::HTTP, HTTParty, Faraday, Mechanize, RestClient e qualquer cliente HTTP que aceite uma URL de proxy
Rotação por requisição por padrão, com `sid` para sessões persistentes e `ttl-N` para fixações por tempo de N segundos
Compatível com Ruby 2.7 e todas as versões do Ruby 3.x, incluindo a 3.3
Protocolos HTTP, HTTPS e SOCKS5 no mesmo endpoint de gateway
Geo-direcionamento em 195+ países via parâmetros de nome de usuário, sem necessidade de gem adicional
Substituição direta para Sinatra, Rails, Hanami e qualquer framework Ruby personalizado — sem dependência de SDK

Exemplos

Net::HTTP (zero dependências)

A biblioteca padrão do Ruby já é suficiente. Net::HTTP.start aceita host, porta, usuário e senha do proxy — sem necessidade de gems. Ideal para scripts pequenos e funções no estilo Lambda.

require 'net/http'
require 'uri'
require 'json'

PROXY_HOST = 'p.shifter.io'
PROXY_PORT = 443
PROXY_USER = 'customer-USERNAME-country-uk-sid-456DEF'
PROXY_PASS = 'PASSWORD'

uri = URI('https://example.co.uk/products')

http = Net::HTTP.new(
  uri.host,
  uri.port,
  PROXY_HOST,
  PROXY_PORT,
  PROXY_USER,
  PROXY_PASS
)
http.use_ssl = true
http.read_timeout = 30

req = Net::HTTP::Get.new(uri.request_uri)
req['User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36'

response = http.request(req)
puts "Status: #{response.code}, length: #{response.body.length}"

Faraday com Sessão Fixa

Faraday é o cliente HTTP mais flexível do Ruby — baseado em middleware, troque adaptadores à vontade. Adicione um `sid` ao nome de usuário do proxy para fixar um IP residencial para toda a conversa.

require 'faraday'
require 'securerandom'

sid = SecureRandom.hex(4)

conn = Faraday.new(
  url: 'https://example.de',
  proxy: "customer-USERNAME-country-de-city-berlin-sid-#{sid}-ttl-300:PASSWORD@p.shifter.io:443",
  request: { timeout: 30 },
  headers: { 'User-Agent' => 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36' }
)

login     = conn.post('/login', { email: 'user@example.com', password: 'secret' }.to_json,
                      'Content-Type' => 'application/json')
dashboard = conn.get('/dashboard')
orders    = conn.get('/orders')

puts [login.status, dashboard.status, orders.status].inspect

Mechanize (rastreamento com reconhecimento de formulários)

O Mechanize automatiza o envio de formulários e o acompanhamento de links. Configure o proxy no agente e cada página que ele percorre passa pela Shifter.

require 'mechanize'

agent = Mechanize.new
agent.set_proxy('p.shifter.io', 443,
                'customer-USERNAME-country-us-city-newyork-sid-789GHI',
                'PASSWORD')
agent.user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
agent.read_timeout = 30

page = agent.get('https://example.com/login')

form = page.form('login')
form.email = 'user@example.com'
form.password = 'secret'
dashboard = form.submit

dashboard.links_with(href: %r{/orders/\d+}).each do |link|
  order = link.click
  puts order.search('h1').text.strip
end

Rails (serviço HTTP de produção)

Envolva a Shifter em um pequeno serviço Rails para que todo controller / job use a mesma configuração de proxy. Rotacione por requisição ou fixe por usuário.

# app/services/shifter_client.rb
require 'faraday'
require 'faraday/retry'

class ShifterClient
  PROXY_HOST = 'p.shifter.io:443'

  def initialize(country: 'us', sid: nil)
    sid_part  = sid ? "-sid-#{sid}" : ''
    proxy_url = "customer-USERNAME-country-#{country}#{sid_part}:PASSWORD@#{PROXY_HOST}"

    @conn = Faraday.new(proxy: proxy_url, request: { timeout: 30 }) do |f|
      f.request :retry, max: 3, interval: 1.0, backoff_factor: 2
      f.response :json
      f.adapter Faraday.default_adapter
    end
  end

  def get(url)
    @conn.get(url)
  end
end

# In a controller or job:
class ProductsController < ApplicationController
  def index
    client = ShifterClient.new(country: 'uk', sid: current_user.id)
    @products = client.get('https://example.co.uk/products.json').body
  end
end
Perguntas Frequentes

Perguntas frequentes

Perguntas comuns sobre usar o Shifter com Ruby.

Passe o host, porta, usuário e senha do proxy como o 3º ao 6º argumento de Net::HTTP.new. Defina use_ssl = true para destinos HTTPS. A biblioteca padrão do Ruby é suficiente — nenhuma gem extra é necessária.

Passe http_proxyaddr, http_proxyport, http_proxyuser e http_proxypass como opções em qualquer chamada HTTParty.get / post. Ou inclua-os em default_options no nível da classe para que toda requisição feita por uma classe use o Shifter.

Yes. Pass a `proxy` option when constructing the Faraday connection. The format is `http://USER:PASS@p.shifter.io:443`. Faraday's middleware stack — retry, JSON parsing, logging — composes on top.

Adicione um ID de sessão ao nome de usuário do proxy, por exemplo, `customer-USERNAME-country-us-sid-123ABC`. Toda requisição Ruby que usar a mesma URL de proxy reutilizará o mesmo IP residencial. Adicione `ttl-N` para fixar esse IP por até N segundos.

Sim. Encapsule o proxy em uma classe de serviço (ou uma conexão Faraday em um inicializador) e reutilize-a entre controllers e workers do ActiveJob. A mesma URL de proxy funciona em contextos síncronos e assíncronos (Sidekiq).

Nenhuma gem é necessária. A Shifter fala HTTP / SOCKS5 puro, configure seu cliente existente para apontar para `p.shifter.io:443` e está pronto. Isso mantém seu Gemfile enxuto e evita acoplamento de versões.

Começar

Comece a Usar o Shifter com Ruby

Adicione os proxies residenciais e ISP 205M+ da Shifter à sua stack Ruby e Rails em menos de 5 minutos. Funciona com Net::HTTP, HTTParty, Faraday e Mechanize.

Experimente o Shifter GratuitamenteConfigure em minutos. Cancele quando quiser.