Использование разных исходящих IP-адресов в Perl - PullRequest
5 голосов
/ 08 августа 2010

У нас есть несколько разных веб-сайтов, работающих на одном сервере, и все имеют доступ к 1 конкретной веб-службе, каждый из которых имеет свой уникальный API-ключ.К сожалению, у веб-службы есть суточный лимит, основанный на IP-адресе (а не ключе API), поэтому, хотя каждый из наших сайтов находится под своим дневным лимитом, в совокупности он превышает лимит IP.При доступе через веб-браузер каждый веб-сайт работает с другим статическим IP-адресом, однако, когда perl-скрипты запускаются под каждой учетной записью пользователя, их исходящий IP-адрес идентичен.

Мой вопрос: как я могу это сделать?чтобы каждый сценарий perl использовал правильный IP-адрес конкретного сайта, чтобы каждый из них оставался в пределах суточного лимита веб-службы?Проще говоря, как Perl-скрипт может изменить исходящий IP-адрес вызовов, которые он совершает с использованием LWP-модуля Perl?Объяснения хороши, но примеры кода были бы еще лучше.

Заранее спасибо за помощь!

1 Ответ

9 голосов
/ 08 августа 2010

Используя LWP :: UserAgent , вы можете просто использовать метод 'local_address', чтобы решить, какой IP-адрес вы хотите использовать для исходящих соединений:

my $ua = new LWP::UserAgent;
$ua->local_address("10.10.10.10");
my $response = $ua->get("http://stackoverflow.com/");
...