Intégration

Utilisez Shifter avec Ruby

Intégrez les proxies résidentiels et ISP de Shifter dans Ruby en quelques minutes. Compatible avec Net::HTTP, HTTParty, Faraday, Mechanize et Watir — fonctionne dans les scripts simples, Sinatra et Rails.

Démarrage rapide

Installer

gem install httparty

Utilisation de base

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", ...}

Fonctionnalités

Prise en charge directe pour Net::HTTP, HTTParty, Faraday, Mechanize, RestClient et tout client HTTP acceptant une URL de proxy
Rotation par requête par défaut, avec `sid` pour les sessions persistantes et `ttl-N` pour des épinglages temporisés de N secondes
Compatible avec Ruby 2.7 et toutes les versions Ruby 3.x, y compris la 3.3
Protocoles HTTP, HTTPS et SOCKS5 sur le même point d'accès passerelle
Géociblage dans 195+ pays via des paramètres de nom d'utilisateur - aucun gem supplémentaire requis
Intégration directe avec Sinatra, Rails, Hanami et tout framework Ruby personnalisé — sans dépendance à un SDK

Exemples

Net::HTTP (zéro dépendance)

La bibliothèque standard Ruby suffit. Net::HTTP.start accepte l'hôte proxy, le port, l'utilisateur et le mot de passe - aucun gem requis. Idéal pour les petits scripts et les fonctions de type 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 avec session persistante

Faraday est le client HTTP le plus flexible de Ruby — basé sur des middlewares, avec des adaptateurs interchangeables à volonté. Ajoutez un `sid` au nom d'utilisateur du proxy pour ancrer une IP résidentielle sur toute la conversation.

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 (exploration orientée formulaires)

Mechanize automatise la soumission de formulaires et le suivi de liens. Configurez le proxy sur l'agent et chaque page qu'il parcourt transite par 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 (service HTTP en production)

Encapsulez Shifter derrière un petit service Rails afin que chaque contrôleur ou job utilise la même configuration de proxy. Rotation par requête ou ancrage par utilisateur.

# 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
FAQ

Questions fréquentes Questions FAQ

Questions fréquentes sur l'utilisation de Shifter avec Ruby.

Passez l'hôte, le port, l'utilisateur et le mot de passe du proxy en tant que 3e à 6e arguments de Net::HTTP.new. Définissez use_ssl = true pour les cibles HTTPS. La bibliothèque standard de Ruby suffit — aucune gem supplémentaire n'est nécessaire.

Commencer

Commencer à utiliser Shifter avec Ruby

Ajoutez les 205M+ proxies résidentiels et ISP de Shifter à votre stack Ruby et Rails en moins de 5 minutes. Compatible avec Net::HTTP, HTTParty, Faraday et Mechanize.

Essayez Shifter gratuitementConfiguration en quelques minutes. Annulez à tout moment.