在Perl中使用不同的出站IP

时间:2010-08-07 21:53:27

标签: perl ip-address lwp

我们在同一台服务器上运行了一些不同的网站,这些网站都访问了1个特定的Web服务,每个网站都有自己独特的API密钥。遗憾的是,Web服务具有基于IP地址(不是API密钥)的每日限制,因此,虽然我们的每个站点都低于其每日限制,但它们超过了IP限制。当通过Web浏览器访问时,每个网站都运行在不同的静态IP地址上,但是当perl脚本在每个网站用户帐户下运行时,它们的出站IP地址是相同的。

我的问题是如何才能使每个perl脚本使用特定网站的正确IP地址,以便每个人都可以保持在Web服务的每日限制内?更简单的说,perl脚本如何使用LWP perl模块更改它正在进行的调用的出站IP地址?解释很好,但代码示例会更好。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:9)

使用LWP::UserAgent,您只需使用''local_address''方法来决定传出连接所需的IP地址:

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