Integration

Shifter verwenden mit Ruby

Binden Sie Shifters Residential- und ISP-Proxys in wenigen Minuten in Ruby ein. Kompatibel mit Net::HTTP, HTTParty, Faraday, Mechanize und Watir -- funktioniert in einfachen Skripten, Sinatra und Rails.

Schnellstart

Installieren

gem install httparty

Grundlegende Nutzung

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

Funktionen

Drop-in-Unterstützung für Net::HTTP, HTTParty, Faraday, Mechanize, RestClient und jeden HTTP-Client, der eine Proxy-URL akzeptiert
Standardmäßig Rotation pro Anfrage, mit `sid` für Sticky Sessions und `ttl-N` für zeitgesteuerte Pins von N Sekunden
Kompatibel mit Ruby 2.7 und allen Ruby-3.x-Versionen einschließlich 3.3
HTTP, HTTPS und SOCKS5 Protokolle am selben Gateway-Endpunkt
Geo-Targeting in 195+ Ländern über Benutzernamen-Parameter -- kein zusätzliches Gem erforderlich
Direkt einsetzbar für Sinatra, Rails, Hanami und jedes benutzerdefinierte Ruby-Framework — kein SDK-Lock-in

Beispiele

Net::HTTP (ohne Abhängigkeiten)

Die Ruby-Standardbibliothek reicht aus. Net::HTTP.start akzeptiert Proxy-Host, Port, Benutzername und Passwort -- keine Gems erforderlich. Am besten geeignet für kleine Skripte und Lambda-ähnliche Funktionen.

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 mit Sticky Session

Faraday ist Rubys flexibelster HTTP-Client — middleware-basiert, Adapter lassen sich jederzeit austauschen. Füge dem Proxy-Benutzernamen eine `sid` hinzu, um eine Residential-IP für das gesamte Gespräch festzuhalten.

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 (formularbasiertes Crawling)

Mechanize automatisiert das Absenden von Formularen und das Verfolgen von Links. Konfiguriere den Proxy am Agent, und jede Seite, die er aufruft, läuft über 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 (produktiver HTTP-Dienst)

Binde Shifter hinter einem kleinen Rails-Dienst ein, damit jeder Controller und jeder Job dieselbe Proxy-Konfiguration verwendet. Rotation pro Anfrage oder Pinning pro Nutzer.

# 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

Häufig gefragt FAQ-Fragen

Häufige Fragen zur Verwendung von Shifter mit Ruby.

Übergeben Sie Proxy-Host, Port, Benutzer und Passwort als 3. bis 6. Argument an Net::HTTP.new. Setzen Sie use_ssl = true für HTTPS-Ziele. Die Ruby-Standardbibliothek reicht aus - keine zusätzlichen Gems erforderlich.

Jetzt starten

Shifter verwenden mit Ruby

Fügen Sie Shifters 205M+ Residential- und ISP-Proxys in weniger als 5 Minuten zu Ihrem Ruby- und Rails-Stack hinzu. Funktioniert mit Net::HTTP, HTTParty, Faraday und Mechanize.

Shifter kostenlos testenIn Minuten eingerichtet. Jederzeit kuendbar.