Im ищет способ использовать разные IP-адреса для каждого запроса GET со стандартной библиотекой Net:: HTTP. Сервер имеет 5 IP-адресов и предполагает, что некоторые API-интерфейсы блокируют доступ, когда достигается ограничение на доступ к IP-адресу. Таким образом, единственный способ сделать это - использовать другой сервер. Я не могу найти что-нибудь об этом в рубиновых документах.
Например, curl позволяет присоединить его к определенному IP-адресу (в PHP):
$req = curl_init($url)
curl_setopt($req, CURLOPT_INTERFACE, 'ip.address.goes.here';
$result = curl_exec($req);
Есть ли способ сделать это с помощью библиотеки Net:: HTTP? В качестве альтернативы - CURB (связывание рубинового рулона). Но это будет последнее, что я попробую.
Предложения/идеи?
P.S. Решение с CURB (с грязными тестами, заменяется ip):
require 'rubygems'
require 'curb'
ip_addresses = [
'1.1.1.1',
'2.2.2.2',
'3.3.3.3',
'4.4.4.4',
'5.5.5.5'
]
ip_addresses.each do |address|
url = 'http://www.ip-adress.com/'
c = Curl::Easy.new(url)
c.interface = address
c.perform
ip = c.body_str.scan(/<h2>My IP address is: ([\d\.]{1,})<\/h2>/).first
puts "for #{address} got response: #{ip}"
end