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
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 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 à 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.